Linux FIND parancs példákkal

Tudja, hogy hány fájl van a Linux friss telepítésében ? Ha a PopOS! A Linux disztribúció(Linux distribution) példájaként több mint 31 000 fájl található. Ez azelőtt történik, hogy elkezdene dokumentumokat készíteni, zenét tárolni, PDF(PDFs) -eket letölteni vagy képeket rendezni.

Emiatt kihívást jelent a megfelelő fájl vagy mappa megtalálása Linuxon(Linux) , amikor szüksége van rá. Ebből a cikkből megtudhatja, hogyan kell használni a Linux FIND parancsát, és bemutatunk minden lehetséges példát.

Linux FIND parancs szintaxisa(Linux FIND Command Syntax)

A szintaxis a szavak vagy parancsok összeállítására utal. Ahogy(Just) egy normál mondat értelmetlenné válhat a szavak összekeverésével, a parancsok is meghiúsulhatnak, ha nem a megfelelő szintaxisban használják őket.

keresés [útvonal] [feltételek] [műveletek](find [path] [conditions] [actions])

Íme, ez mit jelent:

find – elindítja a Find segédprogramot Linuxon(Linux)

út(path ) – hol keressünk

feltételek(conditions ) – a kereséshez alkalmazni kívánt argumentumok

cselekvések(actions ) – mit szeretne kezdeni az eredménnyel

Mindhárom egyszerű példa így néz ki:

megtalálja . -name file-sample.rtf -print(find . -name file-sample.rtf -print)

Ahogy sejtette, ez megtalálja a file-sample.rtf fájlnevet(file-sample.rtf)

A pont ( . ) elérési útja azt mondja, hogy a find az aktuális könyvtárban és a benne található könyvtárakban keressen. 

A -name feltétel azt mondja, hogy a find megkeresi a fájlt az adott néven.

A -print művelet azt mondja a FIND-nak, hogy az eredményeket a képernyőn jelenítse meg.

A pont és a -print a find parancs alapértelmezett értéke. Tehát akkor is ugyanazt csinálja, ha nem használja őket. Tehát a -name file-sample.rtf keresése(find -name file-sample.rtf ) ugyanazt az eredményt fogja adni.

Linux FIND egy másik könyvtárban(Linux FIND In Another Directory)

Kereshet más könyvtárban is, mint amelyikben tartózkodik. Csak(Just) írja be a könyvtár elérési útját a FIND után . Ha a gyökérben van, és tudja, hogy a fájl valahol a home/user könyvtárban van, akkor a következőket kell használnia:

find home/user -name file-sample.rtf

Ez továbbra is rekurzív keresés, így a user(user) alatt található összes könyvtáron végigmegy .

Linux FIND Keresés több könyvtárban(Linux FIND Search Multiple Directories)

Ha egyszerre több könyvtárban szeretne keresni, egyszerűen sorolja fel őket a parancsban, szóközzel elválasztva.

find /lib /var /bin -name file-sample.rtf

Linux FIND rekurzió nélkül vagy korlátozó rekurzióval(Linux FIND with No Recursion or Limiting Recursion)

Ha a fenti FIND parancsot használja a gyökérszinten, akkor a rendszer minden könyvtárát átnézi. Tehát ha csak az aktuális könyvtárhoz szeretne ragaszkodni, használja a -maxdepth kapcsolót. A -maxdepto utáni szám azt jelzi, hogy a megállás előtt milyen mélyre kell menni. 

A -maxdepth 1 használata csak ezt a könyvtárat jelenti. 

find -name file-sample.rtf -maxdepth 1

A -maxdepth 2 vagy nagyobb szám használata annyi szinttel mélyebbre megy.

find -maxdepth 5 -name file-sample.rtf

Linux FIND helyettesítő karakter Példa(Linux FIND Wildcard Example)

A FIND parancs a csillagot ( * ) használja helyettesítő karakterként. Használja a név bármely olyan részére, amelyben nem biztos. A névben többször is használható. A fájlnév részeként a fájltípus nélkül az eredmények a megfelelő könyvtárakat is tartalmazzák.

find home/user -name file*sample*

Linux FIND típuspélda szerint(Linux FIND by Type Example)

Ha csak fájlt vagy könyvtárat szeretne keresni, használja a -type kapcsolót és a megfelelő leírót. Van néhány, de a fájl és a könyvtár a leggyakoribb:

f – fájl

d – címtár

b – blokk eszköz

c – karaktereszköz

l – szimbolikus link

s – foglalat

find home/user -name file*sample* -type d

Linux FIND példa a kis- és nagybetűk megkülönböztetésére(Linux FIND Case Insensitive Example)

A Windowstól(Windows) eltérően a Linuxnak(Linux) fontos, hogy egy betű nagy- vagy kisbetű legyen. Tehát ha azt szeretné, hogy a File-Sample.rtf és a file-sample.rtf fájlokat is keresse, használja a -iname kapcsolót.

find home/user -iname File-Sample.rtf

Linux Több fájl KERESÉSE Példa(Linux FIND Several Files Example)

Tegyük fel, hogy meg akarta találni egy fájl .rtf és .html verzióit. Ez megtehető egyetlen paranccsal a -o (vagy) operátor használatával. Egyes disztribúciókban előfordulhat, hogy a neveket zárójelek közé kell tenni, például ( -name file-sample.rtf -o -name file-sample.html )

find home/user -name file-sample.rtf -o -name file-sample.html

Linux KERESÉS olyan fájlokat, amelyek nem egyeznek a névvel(Linux FIND Files That Don’t Match a Name)

Talán tudja, hogy egy fájlnak létezik .html verziója, de nem, ha vannak mások. A .html verziót kiszűrheti a keresésből a -not kapcsolóval .

find home/user -name file-sample* -not -name *.html

Linux FIND hiba nélkül(Linux FIND Without Error Results)

A rekurzió nélküli keresésben vegye észre, hogy minden olyan könyvtárat felsorolt, amelyben nem tudott keresni, és a helyes eredményt. Ez bosszantó. Ne jelenítse meg az összes „ Engedély(Permission) megtagadva” könyvtárat. Kombináld egy másik Linux terminálparancstal(Linux terminal command) , a grep. A Keresés a grep segítségével is megkeresheti(Find) bizonyos szavakat tartalmazó fájlokat(find files with specific words in them) .

find -maxdepth 5 -name file-sample.rtf 2>&1 | grep -v “Permission denied”

Bontsuk fel a 2>&1 -et .

2 – az stderr -t jelenti , amely a szabványos hibakimenet rövidítése. 

1 – az stdoutot(stdout) jelöli , amely a szabványos kimenet rövidítése

> – azt jelenti, hogy a tőle balra lévő kimenetet átirányítjuk a tőle jobbra lévőre.

& – azt jelenti, hogy összerakjuk.

Tehát a 2>&1 azt jelenti, hogy a szabványos hibákat átirányítjuk, majd a szabványos kimenettel együtt egyetlen kimenetbe helyezzük.

Most nézzük a | grep -v “Permission denied” .

| (úgynevezett cső) – utasítja a Linuxot(Linux) , hogy a tőle balra lévők eredményeit táplálja a tőle jobbra lévőbe. A grep parancsot táplálja.

grep – egy szövegkereső segédprogram. 

-v – azt mondja a grepnek, hogy keressen bármit, ami nem egyezik a -v bal oldalán található szöveggel. Ebben az esetben azt utasítja a grep-nek, hogy csak olyat találjon, ami nem tartalmazza az „ Engedély(Permission) megtagadva” szöveget vagy karakterláncot. Tehát a grep csak a keresett találatokat és az olyan hibákat mutatja, amelyek nem egyeznek az „ Engedély(Permission) megtagadva” kifejezéssel.

Linux FIND engedélyekkel Példa(Linux FIND by Permissions Example)

Ennek megfelelő használatához meg kell tanulnia a Linux engedélyeit(learn Linux permissions)

A példafájlok mindegyike rendelkezik 664-es engedéllyel, kivéve egyet, amelyiknek 775-ös engedélye van. A -perm kapcsolóval keresse meg.

find Documents/ -name file-sample* -type f -perm 775

Linux FIND méret szerint Példa(Linux FIND by Size Example)

A fájlok méret szerinti megkeresése praktikus ahhoz, hogy ezek a hatalmas fájlok megtöltsék merevlemezét. Használja a -size opciót, a kívánt méretet, és a következő utótagok egyikét. Ha nem használ utótagot, a -size alapértelmezés szerint b . Ha egy bizonyos méretű vagy annál nagyobb fájlokat szeretne keresni, tegye a pluszjelet (+) a méret elé.

M – Megabájt

G – Gigabájt

k – Kilobájtok

b – blokkok (512 bájt – alapértelmezett)

c – bájtok

w – szavak (két bájt együtt)

find -size +500k

Linux FIND a tulajdonostól(Linux FIND by Owner)

Kétféleképpen keresheti meg a fájlokat tulajdonos szerint. Az egyik a tulajdonos felhasználóneve, a másik a felhasználó csoportja szerint. A felhasználónév szerinti kereséshez használja a -user kapcsolót, majd írja be a felhasználónevet. Felhasználói csoport szerinti kereséshez használja a -group parancsot(-group ) , majd a csoport nevét.

find -user groupname vagy find -user username

Linux FIND Fájlok Utoljára módosított példa szerint(Linux FIND Files by Last Modified Example)

Az elmúlt X napban módosított vagy szerkesztett fájlok kereséséhez használja az -mtime parancsot(-mtime) , majd egy számot. Ha egy mínusz jelet ( ) tesz a szám elé, azt észleli, hogy minden megváltozott a nap előtti napon belül. A pluszjel ( + ) annyit jelent, hogy az előtte lévő napokon belül van. 

find -name “file-sample*” -mtime +5 (greater than 5 days ago)

find -name “file-sample*” -mtime -5 (less than 5 days ago)

Az utoljára módosított percben való kereséshez használja a -mmin kapcsolót, majd a percek számát. Használja a + és - jeleket, mint fent.

find -name “file-sample*” -mmin -5

find -name “file-sample*” -mmin +5

Linux FIND Fájlok Utolsó elérési ideje Példa szerint(Linux FIND Files by Last Accessed TIme Example)

A fájlok legutolsó megnyitásának időpontja alapján történő megkeresésére használt beállítás az -atime napokra és az -amin percekre(-amin ) vonatkozik. Kövesse a napok vagy percek számát a visszalépéshez, és használja a + és - jelet nagyobb és kisebb mintként.

find -name “file-sample*” -atime -5

find -name “file-sample* -amin -5

Kombinálja a FIND parancsot más Linux-parancsokkal(Combine FIND with Other Linux Commands)

Van egy példa fent a find használatára a grep paranccsal, és sok mással is használhatja. Láthatja, hogy a find és más parancsok használata nagyon hatékony és hatalmas időmegtakarítást jelenthet. Képzelje el(Imagine) , hogy egy csomó fájlt törölnie kell egy adott típusú fájlból. A fájlkezelőben való keresgélés helyett csak adja meg a megfelelő parancsot, és másodpercek alatt készen is lesz. Hogyan fogja most használni a find parancsot?



About the author

Szoftvermérnök és felfedező vagyok. Van tapasztalatom a Microsoft Xbox 360-al és a Google Explorerrel is. Szakértői ajánlásokat tudok nyújtani bizonyos szoftverfejlesztő eszközökhöz, valamint segítséget tudok nyújtani az Explorer gyakori hibáinak elhárításában.



Related posts