find parancs a fájlrendszer objektumainak rekurzív szűrésére egy egyszerű feltételes mechanizmus alapján. Használja afind fájlt vagy könyvtárat a fájlrendszeren. A -exec zászló használatával a fájlok azonnal megtalálhatókazon a parancson belül feldolgozva.,

Find Linux Files by Name or Extension
Use find from the command line to locate a specific file by name or extension., A következő példa keres *.err fájlok a /home/username/ könyvtár, valamint az összes alkönyvtárat:
find /home/username/ -name "*.err"
egy hasonló kimenetet a konzolon:
/home/username/example.errThe matching file in the /home/username/ directory is "example.err"
Közös Linux Találni Parancsok Szintaxisa
A find parancs általában a következő formában:
find options starting/path expression
- A
optionsattribútum irányítja a viselkedést, optimalizálási módszer afindfolyamat., - a
starting/pathattribútum határozza meg a felső szintű könyvtárat, aholfindszűrést kezd. - a
expressionattribútum vezérli azokat a teszteket, amelyek a könyvtárhierarchiában keresnek kimenetet.
Keressen egy fájlt Linuxban a
fájlnév használatával a fájlnév használatához használja a find -name filenameszintaxist. Az elérési út kihagyása a fájlt a teljes lemezen keresi., Például egy example.err nevű fájlt talál a /home/username könyvtárban a következő paranccsal:
find -name example.err
hasonló kimenetet kell látnia:
./username/example.err
>
keressen egy fájlt az aktuális könyvtárban a find paranccsal
vessen egy pillantást a példa könyvtárszerkezetre és fájlokra. Ezeket az útmutató példáiban említik.,meg akarom találni a fájl example.err belül a könyvtárat vagy annak alkönyvtárak, akkor adja ki a következő parancsot:
find . -name example.err
A kimeneti hasonlít a következő:
./example.err./directory_1/example.err
A kimeneti tükrözi directory_1 directory struktúra:
├── directory_1│ ├── subdirectory_1│ │ └── example.err│ └── example.err
keresd meg a Kép Fájlok a Linux parancssorból
Hivatkozás a fájl szerkezetét az előző részben, itt egy kép neve image01.png található a gyökér (/)s a könyvtárszerkezet.,
aimage01.png fájl megtalálásához futtassa a következőfind parancsot, amely megtalálja az összes.png a/ könyvtárban tárolt fájlokat.
find -name *.png
hasonló kimenetet kell látnia:
./image01.png
módosítsa a képfájl típusát, és keressen bármilyen .jpg fájlt a gyökérkönyvtárban (/): p>
find -name *.jpg
a kimenet hasonlít a példára., A fájl helyének megtekintéséhez tekintse meg az előző szakasz példa könyvtárszerkezetét.
./web_files/unnamed.jpg
Keressen egy üres fájlt a könyvtárban a
parancssor segítségével, hogy üres fájlt találjon a könyvtárban a parancssor segítségével, adja ki a következő parancsot:
find . -type f -empty
ha nincs kimenet, akkor nincs üres fájl az aktuális könyvtárban.
A
find ignoressymbolic linkek alapértelmezett konfigurációja parancssori fájlok Linuxban történő keresésére szolgáló opciók és optimalizálások., Ha azt szeretné, hogy a find kövesse és adja vissza a szimbolikus hivatkozásokat, adja hozzá a -L opciót a parancshoz, az alábbiak szerint:
find -O3 -L /var/www/ -name "*.html"
Ez a parancs lehetővé teszi a maximális optimalizálási szintet (-O3) és lehetővé teszi a find szimbolikus hivatkozások követését (-L). finda teljes könyvtárfát a /var/www/alatt keresi a .html fájlokkal végződő fájlok esetén.,
find optimalizálja szűrési stratégiáját a teljesítmény növelése érdekében. Három felhasználó által választható optimalizálási szint van megadva: -O1, -O2, és -O3. A-O1 optimization az alapértelmezett, és erőkfind szűrni alapján fájlnév futtatása előtt az összes többi teszt.,
Optimization at the -O2level priorizes filename filename filters, as in -O1, majd fut az összes fájltípus szűrés megkezdése előtt más erőforrás-intenzív feltételek. Szint -O3 optimalizálás lehetővé teszi, hogy a find, hogy végre a legsúlyosabb optimalizálás, majd reorders minden vizsgálatok alapján a relatív költség, valamint a valószínűsége, hogy a siker.,
| Command | Description |
|---|---|
-O1 |
Filter based on filename first (default). |
-O2 |
File name first, then file-type., |
-O3 |
find a keresés automatikus újrarendelése az erőforrások hatékony felhasználása és valószínűsége alapján. a siker |
-maxdepth X |
keresés aktuális könyvtár, valamint az összes alkönyvtár X szint mély. |
-iname |
Keresés szöveges eset figyelembevétele nélkül., |
-not |
Return only results that do not match the test case. |
-type f |
Search for files. |
-type d |
Search for directories., |
fájlok keresése Linuxban módosítási idő szerint a
find parancs szűrheti a könyvtári hierarchiát a fájl utolsó módosításakor., Például a következő parancs talál minden fájlt a .err kiterjesztéssel, amelyet az elmúlt 7 napban módosítottak:
find / -name "*err" -mtime -7
a példa parancs a következő kimenetet adja vissza:
A Grep segítségével fájlokat találhat Linuxban a
parancs csak a fájl neve és metaadatai alapján képes szűrni a könyvtári hierarchiát. Ha a fájl tartalma alapján kell keresnie, használjon olyan eszközt, mint példáulgrep., Vegye figyelembe a következő példát:
find . -type f -exec grep "test" '{}' \; -print
Ez a parancs az aktuális könyvtárhierarchiában minden objektumot keres (.), amely egy fájl (-type f), majd futtatja a grep "test" parancsot minden fájl, amely megfelel a feltételeknek. A megfelelő fájlok a képernyőn jelennek meg (-print). A curly braces ({}) a találati eredmények helyőrzője., A {} egyetlen idézőjelbe van zárva ('), hogy elkerülje a grep hibás fájlnév átadását. A-exec parancs pontosvesszővel (;) fejeződik be, amelyet el kell kerülni () a héj értelmezésének elkerülése érdekében.
a példában használt fájlnak (example.err) szövege van benne, amely azt mondja: “teszt”., A példa parancs futtatásakor hasonló kimenetet lát:
Grep azonosította az aktuális munkakönyvtárban található összes fájlt, amely tartalmazza a “teszt”karakterláncot.,
Megjegyzés:
Mielőtt a
findparancs végrehajtása a-execopció lehet létrehozni egy hasonló kimenetet, hogy a fenti példa segítségével, hogy axargsparancsot:find . -type f -print | xargs grep "test"
a Folyamat Megtalálni a Fájlokat a find Parancs Linux
A -exec opció fut parancsok ellen, minden objektum, amely megegyezik a find kifejezés., Vegye figyelembe a következő példát:
find . -name "example.err" -exec chmod o+r '{}' \;
Ez kiszűri az aktuális hierarchia minden objektumát (.) a rc.conf nevű fájlokhoz, és futtatja a chmod o+r parancsot a fájl engedélyeinek módosításához div id=”6e30b51f0c”> parancs eredményei.
a példa parancs futtatja és végrehajtja a -execopciót a find folyamat gyökérkönyvtárában. Használja a -execdir parancsot a megadott parancs végrehajtásához abban a könyvtárban, ahol a mérkőzés található., Ez enyhítheti a biztonsági aggályokat, és egyes műveletek esetében jobb teljesítményt eredményezhet.
a -execvagy -execdir az opciók további utasítások nélkül futnak. Ha a művelet megkezdése előtt szeretné kérni, cserélje ki a -exec -ok vagy -execdir -okdir.
hogyan lehet megtalálni és törölni a fájlokat a Linux parancssor segítségével
Vigyázat
használja ezt az opciót rendkívül óvatosan.,
adja hozzá a -delete opciót a mérkőzés kifejezésének végéig az összes megfelelő fájl törléséhez. Használja ezt az opciót, ha biztos benne, hogy az eredmények csak a törölni kívánt fájlokhoz igazodnak.
az alábbi példában find rekurzív módon megkeresi a hierarchiában lévő összes fájlt az aktuális könyvtárból kiindulva, és törli az összes fájlt, amely a .err kiterjesztés:
find . -name "*.err" -delete
még van néhány kérdése?,
Csatlakozzon közösségünkhöz, és tegye fel kérdéseit más Linode-és Linux-rajongóknak, hogy segítsenek.
kapcsolódó kérdések: