Ez a bemutató arra összpontosít, hogyan lehet fájlokat találni Linuxon a find and the locate paranccsal.
rendszergazdaként nagyon gyakori feladat egy adott fájl keresése a fájlrendszeren.
előfordulhat azonban, hogy néha nehéz megtalálni a fájlokat egy Linux fájlrendszeren, különösen, ha több tucat különböző felhasználója van.
két parancs segít a cél elérésében : megtalálni és megtalálni.,
ebben a bemutatóban látni fogjuk, hogyan lehet ezeket a parancsokat hatékonyan használni, és hogyan lehet hangolni, hogy elérjék azt, amit keresünk.
Tartalomjegyzék
fájlok keresése a
a fájlok megtalálásának és megtalálásának első módja a Linux gazdagépen a keresés parancs használata.,
alapértelmezés szerint a find parancs minden disztribúcióban elérhető, és a következő szintaxissal rendelkezik:
$ find <options> <path> <expression>
gyors tipp: van-e valami problémája az emlékezéssel, ha az útvonal vagy a kifejezés az első?
ne feledje, hogy a grEP a kifejezés útja, a keresés pedig az ellenkezője, tehát az út kifejezés!
a Find egy nagyon erős parancs, mivel sokkal több opcióval rendelkezik, mint a locate parancs.
itt található a find funkció Összes lehetősége Linuxon.,
Find files with find by filename
a find funkció leggyakoribb használata a fájlnevek alapján megadott fájlok keresése.
$ find <path> -name <pattern>
a fájlok keresésekor a keresés és a keresés közötti fő különbség az, hogy a keresés megkeresi a fájlneveket, míg a locate megkeresi a fájl elérési útjait.
például, ha visszatérünk a korábban használt runlevel példához, itt található a runlevel fájlok keresése a find paranccsal.,
$ find / -name runlevel*
mi a “2>/dev /null” rész?
átirányítottam a hibakimenetet a/dev / null-ra a kimeneti átirányítás segítségével, hogy elkerüljük a konzol hibaüzeneteit.
fájlok keresése a find by filetype
mint azt korábban a kemény és puha linkekről szóló cikkünkben tárgyaltuk, a fájlok fájltípusokhoz vannak rendelve, amelyeket megkülönböztetésükre használnak.,
itt található a Linuxon használt összes fájltípus áttekintése.
- f : a standard file
- d : A mappa vagy könyvtár
- l : szimbolikus link vagy soft link
- b : block eszközök (mint például a merevlemez)
- c : karakter eszközök (soros portok, hangkártyák)
- s : socket
p : named pipe
ismerve az összes fájltípust, most már kereshet fájlok fájltípusonként a find paranccsal.
$ find <path> -type <filetype>
például, ha a gazdagép összes szimbolikus linkjét keressük, a következő parancsot adnánk ki.,
$ find / -type l
paraméterek kombinálhatók, például ha minden szimbolikus linket Keresek, amelynek fájlnevei véget érnek”.szolgáltatás ” (például az összes systemd szolgáltatás elkülönítéséhez) a következő parancsot futtatom.
fájlok keresése mintával (kiterjesztésekhez)
hasonlóan a lokalizációhoz parancs, képes megtalálni a fájlokat a Linux egy minta.
emlékeztetőül a minta olyan karakterlánc, amely gömbölyű karaktereket tartalmaz (például*,?,, vagy tartományok).
Ez az opció különösen akkor van, ha kiterjesztéssel rendelkező fájlokat próbál megtalálni, például Javascript fájlokat.
fájlok kereséséhez Linuxon egy minta segítségével futtassa a következő parancsot:
$ find <path> -name ".<extension>"
$ find / -name "*.js"
files files on Linux by owner
néha el akarja különíteni egy adott felhasználó által létrehozott fájlokat.
amikor egy felhasználót töröl a gazdagépen, érdemes lehet például törölni a felhasználóhoz társított összes fájlt.,
előfordul, hogy a felhasználók saját könyvtárukból hoznak létre fájlokat, és a felhasználói otthoni könyvtár törlése önmagában nem elegendő.
ennek következtében egy bizonyos felhasználó által létrehozott fájlok megtalálásához Linuxon futtassa a következő parancsot:
$ find <path> -user <user>
például a “john” tulajdonában lévő összes fájl megtalálásához a gazdagépen a következő parancsot futtatnám.
$ find / -user john
most mi van, ha egy egyszerű paranccsal törölni akarom a john tulajdonában lévő összes fájlt?,
Ez könnyen megvalósítható a Törlés zászló.
$ find / -user john -delete
fájlok keresése Linuxon engedélyekkel
A find parancs segítségével megtalálhatja azokat a fájlokat is, amelyek bizonyos engedélyekkel rendelkeznek a gazdagépen.
$ find <path> -perm <permissions>
emlékeztetőül itt található, hogyan működnek a fájlengedélyek Linuxon.
az összes olyan fájl megtalálásához, amely teljes jogosultsággal rendelkezik (a bináris jelölés alapján 777), a következő parancsot futtathatja.,
$ find / -perm 777
nagyon hasznos lehet, ha biztonsági okokból meg akarja vizsgálni, hogy nincs-e fájl konfigurálva a rendszer teljes engedélyével.
keresse meg a fájlokat a find by size
egy nagyon hasznos módja annak, hogy megtalálja a Linuxon található fájlokat, hogy megtalálja a Find parancsot a méret opcióval.
a méret opció lehetővé teszi olyan fájlok keresését, amelyek pontosan a megadott méret, nagyobb, mint egy adott méret vagy alacsonyabb, mint egy adott méret.,
keresni a fájlok mérete, használja a következő parancsot
$ find <path> -size <size>
A méret határozza meg a következő előtagok :
- c: bájt
- b: 512 byte-os blokk
- k: Kilobyte
- M: Megabájt
- G: Gigabyte
megadhatja, Hogy egy “+” ha keres fájlokat nagyobb, mint a megadott méretű.,
például, annak érdekében, hogy megtalálják a fájlokat 1 GB-nál nagyobb a rendszer, futtassa a következő parancsot
$ find / -size +1G
fájlok kereséséhez alacsonyabb, mint 10 MBs a rendszer, futtassa a következő parancsot
$ find / -size -10M
Végre, fájlok kereséséhez, amelyek pontosan meghatározott méretű a lekérdezés, nem kell hozzáfűzni bármilyen plusz vagy mínusz előtag a parancs.
$ find / -size 1024k
az éppen definiált parancs minden olyan fájlt megtalál, amely pontosan 1024 Kbs méretű a gazdagépen.,
fájlok keresése Linuxon a módosítási dátum szerint
a keresés segítségével megtalálhatja azokat a fájlokat is, amelyek módosítási dátumot kaptak, friss vagy sem.
Ez a parancs nagyon hasznos, és gyakran használják a rendszergazdák, hogy megtalálja a fájlokat vagy könyvtárakat, amelyek a közelmúltban módosították.
fájlok kereséséhez a keresés módosítási dátum szerint futtassa a következő parancsot:
$ find <path> -mtime <time>
ahol az idő a módosított 24 * <idő> órákkal ezelőtt.
ennek következtében az idő napokban fejeződik ki.,
a méret opcióhoz hasonlóan “plusz” vagy “mínusz” operátort is csatolhat a <idő> napokkal ezelőtt, vagy kevesebb, mint <idő> napokkal ezelőtt.
például a pontosan 3 órával ezelőtt módosított fájlok kereséséhez a következő parancsot kell futtatnia.,
$ find / -mtime 3
ahhoz, Hogy megtalálja módosított fájlokat több, mint egy hete, akkor futtassa a következő parancsot
$ find / -mtime +7
ahhoz, Hogy megtalálja módosított fájlokat kevesebb, mint két nappal ezelőtt, akkor futtassa a következő parancsot
$ find / -mtime -2
Keresés fájlok dinamikus mélység
Mint talán ön is észrevette, hiszen az elején ez a bemutató, adunk példát fájlok keresések kezdve a gyökér könyvtárban.
ennek következtében az összes mappa rekurzívan böngészhető.,
azonban korlátozhatjuk az egyik könyvtárból rekurzívan megtett könyvtárak számát, ezt mélységnek nevezzük.
korlátozni a fájl keresést, hogy egy adott mélység, futtassa a következő lekérdezés
$ find <path> -maxdepth <depth>
például, itt van, hogyan lehet korlátozni a fájlok keresések, hogy az aktuális könyvtárban, gyerekek könyvtárak, hogy böngészett.
$ find / -maxdepth 1
nyilvánvalóan kombinálhatja ezt a parancsot a névjelzővel annak érdekében, hogy egy adott névvel rendelkező fájlokat keressen az aktuális könyvtárban.,
$ find . -maxdepth 1 -name *.tar
Chaining find with-exec
hasznos lehet a keresés parancs láncolása a végrehajtóval.
az exec opció több parancs összekapcsolására használható: az első eredményét a második bemeneteként veszi figyelembe.,
tegyük fel például, hogy az összes fájlt kevesebb mint egy perccel ezelőtt módosítani szeretné
$ find /home/user -mmin -1./file1
most tegyük fel, hogy törölni szeretné az összes olyan fájlt, amelyet kevesebb mint egy perccel ezelőtt módosítottak.
a szintaxis használatával láncolhatja a find parancsot a-exec opcióval.
$ find /home/user -mmin -1 -exec echo rm -f '{}' \;
helyes fájlok.,
Ha készen áll a fájlok törlésére, egyszerűen távolítsa el az echo parancsot.
$ find /home/user -mmin -1 -exec rm -f '{}' \;
fájlok keresése Linuxon a Locate parancs segítségével
a Linuxon található fájlok megtalálásának és megtalálásának másik nagyszerű módja a locate parancs használata.
előfeltételek
Ha a locate parancs nem érhető el a rendszeren, olvassa el a következő részt, hogy keresse meg a rendszeren futó programot.,
A – Locate telepítése APT és RPM alapú disztribúciókra
a locate telepítéséhez sudo jogosultságokra lesz szüksége a Linux gazdagépen.
annak ellenőrzéséhez, hogy a locate telepítve van-e a gazdagépen, futtassa a locate parancsot a parancssorban.,
$ locate
Ha a locate telepítve van a számítógépen, akkor a
ha a locate nincs telepítve a gazdagépen, hibaüzenet jelenik meg
az Ubuntu 18.04 és Debian 10 telepítéséhez futtassa a következő parancsot.,
$ sudo apt-get install mlocate
hasonlóképpen, ha CentOS vagy Fedora alapú disztribúciót használ, futtassa a következő parancsot a locate telepítéséhez.
$ sudo yum install mlocate
b – az mlocate adatbázis frissítése
A locate funkció a fájlrendszeren tárolt helyi adatbázissal működik, amely a gazdagép minden egyes fájlnevét tárolja.
a locate parancs végrehajtásakor a locate az updatedb által készített adatbázisba keresi a keresett fájlt.
időnként egy cron feladat frissíti az mlocate-ot.db fájlt, hogy keresse meg a legújabb bejegyzéseket.,
az adatbázis a/var/lib/mlocate / mlocate / mlocate címen található.a db alapértelmezés szerint az updatedb konfigurációs fájlt az /etc/updatedb fájlban tárolja.conf.
egyelőre elhagyhatja az alapértelmezett beállításokat, és futtathat egy egyszerű updatedb parancsot az adatbázis frissítéséhez.
$ sudo updatedb
keresse meg a
névminta alapján megadott fájlokat a fájlok keresése Linuxon az, hogy mintát adjon a Locate parancsnak.,
alapértelmezés szerint a locate parancs szintaxisa a következő:
$ locate ... ...
Ha egy adott konfigurációs fájlt keres a rendszeren, könnyű megtalálni, hogy teljes fájlnevét megadja a locate parancsnak.
$ locate updatedb.conf
mint látható, a locate parancs visszatér a teljes elérési utat a fájlba I am keresem.,
keresse meg a fájlokat korlátozott könyvtárakban
néha előfordulhat, hogy nem fér hozzá a rendszer egyes könyvtáraihoz.
ennek következtében nem fogja tudni megtalálni a benne található fájlokat.
Vegyünk egy példát egy tiltott mappára, amely egy “korlátozott fájl”nevű fájlt tartalmaz.
a korlátozott könyvtárakban található fájlok megkereséséhez a locate parancsot sudo jogosultságokkal kell futtatnia.,
$ sudo locate restricted-file
a locate paranccsal
a “mintákat” gömbölyű karakterek formájában adhatja meg.
A Globbing karakterek, más néven helyettesítő karakterek, olyan karakterek, amelyeket egy vagy több bejegyzés egy egyszerűsített kifejezéssel való egyeztetésére használnak.
a legnépszerűbb a”*”, amely megfelel minden karakternek, beleértve a egyiket sem.
itt egy összefoglaló táblázat a karakterek és azok funkcióinak leképezésére.,6934f1″>
ab
cab
runlevel
runlevel1, runlevel2, runlevel6
As an example, here’s a way to locate all text files on your system.,
$ locate *.txt
a fájlok megkeresése a
a Locate hivatalos man oldala, a locate parancs beviteli mintát fogad el.
Ez azt jelenti, hogy képes reguláris kifejezést adni a locate parancsnak.
a regex-ben megadott fájlok megkereséséhez használja a-regex opciót a locate parancshoz.,
$ locate --regex <regex>
például, hogy elkülönítse az összes fájlt kezdve runlevel majd egy számot, akkor futtassa a következő parancsot.
$ locate --regex runlevel+
regexek használatakor van egy fontos pont, amelyről tudnia kell, hogy mikor fájlok keresése.
a locate parancs a fájlok elérési útját keresi a helyi adatbázisban.,
következésképpen a fájlok keresésekor tisztában kell lennie azzal, hogy a reguláris kifejezésnek meg kell egyeznie a fájl elérési útjával, nem pedig a fájl nevével.
például, ha a “Futtatás” – val kezdődő fájlokat keresem, akkor az eredmények nem kerülnek vissza, mivel a fájl elérési útja “/usr” – vel kezdődik.
keresse meg a fájlokat a case érzéketlen opcióval
a fájlrendszeren lévő fájlok keresésekor nem biztos abban, hogy egy adott fájlt hogyan neveztek el.,
nagybetűvel vagy kisbetűvel íródott? Tartalmaz-e egyáltalán nagybetűket?
fájlok megkereséséhez egy eset érzéketlen opció használatával csatolja a-i opciót a locate parancshoz.,
$ locate -i <file_pattern>
fájlok keresése tartalom szerint grep
bizonyos esetekben érdekelhet olyan fájlok keresése, amelyek megfelelnek a fájlban található mondatszavaknak.
Ez akkor fordulhat elő, ha például meg akarja találni az adott naplóeseményeket tartalmazó fájlt.,
egy adott szónak megfelelő fájlok keresésének első módja a
$ grep -r <pattern> <path>
Megjegyzés : Ne felejtse el a “-r” opciót, ha teljes könyvtárakon keresztül keres fájlokat.
például., ha az összes olyan fájlt keresi, amelynek tartalmában “hiba” található, a saját könyvtárában, akkor írja be a
$ grep -r error /home/user
bizonyos esetekben előfordulhat, hogy reguláris kifejezést tartalmazó fájlokat szeretne találni.
a reguláris kifejezést használó fájlok megtalálásához használja a”- E ” opciót.,
$ grep -r -E <expression> <path>
mondjuk, például, hogy meg akarja találni a fájl megfelelő az ” abc ” minta a kép, írja be
$ grep -r -E "abc.*" --color /home/user
Megjegyzés : a színes opciót használják, annak érdekében, hogy jelölje ki a gyufát használ a grep parancs.,
olyan fájlok keresése, amelyek segítségével
egy másik nagyszerű módja a fájlok megtalálásának a Linuxon a melyik parancsot kell használni.
A melyik parancsot használják egy adott parancshoz társított fájlok megkereséséhez.
Ez nagyon hasznos lehet, ha nem tudja, hol tárolja a binárisokat egy parancshoz, vagy ha meg kell találnia egy parancsot annak érdekében, hogy hozzáadja az útvonalához.,
$ which <command>
például az” ls”parancshoz társított fájlok kereséséhez írja be a
$ which ls/usr/bin/ls
mint látható, megkapja a fájl teljes elérési útját.
keresse binárisok segítségével whereis
hasonlóképpen, ez teljesen lehetséges, hogy keressen fájlokat a whereis parancs.
a ” whereis “parancs a” melyik “parancs szuperkészletének tekinthető:” whereis ” információt nyújt a parancs nevéről, a fájl helyéről, valamint a kézi oldalak helyéről.,
a whereis végrehajtásához egyszerűen írja be a “whereis” parancsot, majd csatolja a parancs nevét.
$ whereis lsls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
nagyon praktikus!
következtetés
a mai bemutatóban megtanultad, hogyan lehet megtalálni és megtalálni a fájlokat Linuxon két fontos parancs segítségével: keresse meg és keresse meg.
még akkor is, ha az opciót külön-külön mutatták be, ne feledje, hogy kombinálhatók annak érdekében, hogy még többet lehessen megadni a keresett fájlokat.
mint mindig, ha érdekli a Linux rendszer adminisztrációja, weboldalunkon van egy teljes, a Linuxra szentelt szakasz.,
As always, here is a short video on the subject in case you prefer Youtube videos.