Linuxový príkaz FIND s príkladmi

Viete, koľko súborov je v novej inštalácii Linuxu(Linux) ? Ak používate PopOS! Napríklad distribúcia Linuxu(Linux distribution) , existuje viac ako 31 000 súborov. To je skôr, ako začnete vytvárať dokumenty, ukladať hudbu, sťahovať súbory PDF(PDFs) alebo organizovať obrázky.

Z tohto dôvodu sa hľadanie správneho súboru alebo priečinka v systéme Linux(Linux) , keď ho potrebujete, stáva výzvou. V tomto článku sa dozviete, ako používať príkaz FIND v systéme Linux(Linux FIND) , a poskytneme vám všetky možné príklady.

Syntax príkazu FIND pre Linux(Linux FIND Command Syntax)

Syntax sa týka toho, ako sa slová alebo príkazy spájajú. Tak(Just) ako sa z bežnej vety môže stať nezmysel jednoduchým premiešaním slov, príkazy môžu zlyhať, ak sa nepoužívajú v správnej syntaxi.

nájsť [cesta] [podmienky] [akcie](find [path] [conditions] [actions])

Čo to znamená:

find – spustí utilitu Find v (Find)systéme Linux(Linux)

cesta(path ) – kde hľadať

podmienky(conditions ) – argumenty, ktoré chcete použiť pri vyhľadávaní

akcie(actions ) – čo chcete urobiť s výsledkami

Jednoduchý príklad s použitím všetkých troch vyzerá takto:

Nájsť . -name file-sample.rtf -print(find . -name file-sample.rtf -print)

Ako ste uhádli, nájde sa tu názov súboru file-sample.rtf(file-sample.rtf)

Bodka ( . ) cesta hovorí, že find má hľadať v aktuálnom adresári a všetkých adresároch v ňom. 

Podmienka -name hovorí, že find má získať súbor s týmto konkrétnym názvom.

Akcia -print povie NÁJSŤ, aby zobrazila výsledky na obrazovke.

Bodka a -print sú predvolené hodnoty pre príkaz find. Takže to bude robiť to isté, ak ich nebudete používať. Takže nájsť -name file-sample.rtf(find -name file-sample.rtf ) vám poskytne rovnaké výsledky.

Linux NÁJDETE v inom adresári(Linux FIND In Another Directory)

Môžete hľadať v inom adresári, než v ktorom sa nachádzate. Stačí(Just) zadať cestu k adresáru za NÁJSŤ(FIND) . Ak ste v koreňovom adresári a viete, že súbor je niekde v adresári home/user , použite:

find home/user -name file-sample.rtf

Stále ide o rekurzívne vyhľadávanie, takže prejde každý adresár pod user .

Linux HĽADAŤ Hľadanie viacerých adresárov(Linux FIND Search Multiple Directories)

Ak ste chceli hľadať vo viacerých adresároch naraz, stačí ich uviesť v príkaze oddelené medzerou.

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

Linux FIND bez rekurzie alebo obmedzenia rekurzie(Linux FIND with No Recursion or Limiting Recursion)

Ak by ste použili vyššie uvedený príkaz FIND na koreňovej úrovni, prezrel by si každý adresár v systéme. Ak sa teda chcete držať len aktuálneho adresára, použite možnosť -maxdepth . Číslo za -maxdepth hovorí Zistite, ako hlboko ísť pred zastavením. 

Použitie -maxdepth 1 znamená práve tento adresár. 

find -name file-sample.rtf -maxdepth 1

Použitie -maxdepth 2 alebo vyššie číslo znamená ísť o toľko úrovní hlbšie.

find -maxdepth 5 -name file-sample.rtf

Príklad zástupného znaku FIND pre Linux(Linux FIND Wildcard Example)

Príkaz FIND používa hviezdičku ( * ) ako zástupný znak. Použite ho pre akúkoľvek časť mena, o ktorej si nie ste istí. V názve sa dá použiť viackrát. Bez typu súboru ako súčasti názvu súboru budú výsledky zahŕňať aj adresáre, ktoré sa zhodujú.

find home/user -name file*sample*

Linux FIND by Type Príklad(Linux FIND by Type Example)

Ak chcete vyhľadať iba súbor alebo adresár, použite možnosť -type a príslušný deskriptor. Je ich niekoľko, ale najbežnejšie sú súbory a adresáre:

f – súbor

d – adresár

b – blokové zariadenie

c – znakové zariadenie

l – symbolický odkaz

s – zásuvka

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

Linux FIND Príklad bez rozlišovania malých a veľkých písmen(Linux FIND Case Insensitive Example)

Na rozdiel od Windowsu(Windows) sa Linux stará o to, či je písmeno veľké alebo malé. Ak teda chcete, aby hľadal súbor File-Sample.rtf(File-Sample.rtf) aj súbor-sample.rtf, použite možnosť -iname .

find home/user -iname File-Sample.rtf

Príklad Linux FIND niekoľkých súborov(Linux FIND Several Files Example)

Povedzme, že ste chceli nájsť .rtf a .html verzie súboru. To možno vykonať jedným príkazom pomocou operátora -o (alebo). (-o)V niektorých distribúciách možno budete musieť vložiť názvy do hranatých zátvoriek, napríklad ( -názov súboru-ukážka.rtf -o -názov súboru-ukážka.html )(( -name file-sample.rtf -o -name file-sample.html ))

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

Linux NÁJDTE súbory, ktoré sa nezhodujú s názvom(Linux FIND Files That Don’t Match a Name)

Možno viete, že existuje .html verzia súboru, ale nie, ak existujú aj iné. Verziu .html(.html) môžete z vyhľadávania odfiltrovať pomocou voľby -not .

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

Linux NÁJDITE bez chýb(Linux FIND Without Error Results)

V príklade hľadania bez rekurzie si všimnite, že uvádza všetky adresáre, v ktorých sa nepodarilo vyhľadať, a správny výsledok. To je nepríjemné. Zastavme zobrazovanie všetkých tých adresárov „ Povolenie(Permission) odmietnuté“. Skombinujte ho s iným príkazom terminálu Linux(Linux terminal command) , grep. Môžete tiež použiť Nájsť(Find) pomocou grep na nájdenie súborov s konkrétnymi slovami(find files with specific words in them) .

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

Poďme si rozobrať 2>&1 .

2 – predstavuje stderr , čo je skratka pre výstup štandardných chýb. 

1 – predstavuje stdout , čo je skratka pre štandardný výstup

> – znamená presmerovať akýkoľvek výstup naľavo od neho na čokoľvek napravo od neho.

& – znamená dať dokopy.

Takže 2>&1 znamená vziať štandardné chyby a presmerovať ich a potom ich spojiť so štandardným výstupom do jedného výstupu.

Teraz sa pozrime na | grep -v “Permission denied” .

| (nazývané potrubie) – povie Linuxu(Linux) , aby odovzdal výsledky toho, čo je naľavo od neho, tomu, čo je napravo. Privádza sa na príkaz grep.

grep – je nástroj na vyhľadávanie textu. 

-v – povie grepu, aby hľadal čokoľvek, čo sa nezhoduje s textom naľavo od -v. V tomto prípade grepu hovorí, aby našiel iba čokoľvek, čo neobsahuje text alebo reťazec, „ Povolenie(Permission) zamietnuté“. Takže grep vám zobrazí iba výsledky, ktoré hľadáte, a všetky chyby, ktoré sa nezhodujú s „ Povolenie(Permission) odmietnuté“.

Príklad Linux FIND by Permissions(Linux FIND by Permissions Example)

Aby ste to mohli dobre používať, musíte sa naučiť povolenia systému Linux(learn Linux permissions)

Všetky vzorové súbory majú oprávnenia 664, okrem jedného s oprávneniami 775. Na nájdenie použite voľbu -perm .

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

Príklad Linux NÁJSŤ podľa veľkosti(Linux FIND by Size Example)

Vyhľadanie súborov podľa veľkosti je užitočné, ak chcete, aby tieto obrovské súbory zaplnili váš pevný disk. Použite voľbu -size, požadovanú veľkosť a jednu z nasledujúcich prípon. Ak sa nepoužije žiadna prípona, -size je predvolene b . Ak chcete nájsť súbory, ktoré sa rovnajú a sú väčšie ako určitá veľkosť, vložte pred veľkosť znamienko plus (+).

M – megabajty

G – gigabajty

k – kilobajty

b – bloky (512 bajtov – predvolené)

c – bajtov

w – slová (spolu dva bajty)

find -size +500k

Linux FIND od vlastníka(Linux FIND by Owner)

Existujú dva spôsoby, ako nájsť súbory podľa vlastníka. Jeden je podľa používateľského mena vlastníka a druhý je podľa používateľskej skupiny. Ak chcete nájsť podľa používateľského mena, použite možnosť -user , za ktorou nasleduje používateľské meno. Ak chcete nájsť podľa skupiny používateľov, použite -group , za ktorým nasleduje názov skupiny.

find -user groupname alebo find -user username

Linux FIND Files by Last Modified Example

Ak chcete nájsť súbory, ktoré boli upravené alebo upravené za posledných X dní, použite -mtime a za ním číslo. Ak pred číslo vložíte znamienko mínus ( ), zistíte, že sa čokoľvek zmenilo v priebehu mnohých dní predtým. Znamienko plus ( + ) znamená, že už pred tým veľa dní. 

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

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

Ak chcete nájsť podľa poslednej úpravy v minútach, použite voľbu -mmin nasledovanú počtom minút. Použite + a – ako vyššie.

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

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

Linux FIND Files by Last Accessed TIME Príklad(Linux FIND Files by Last Accessed TIme Example)

Možnosť používaná na vyhľadanie súborov podľa toho, kedy boli naposledy otvorené, je -atime pre dni a -amin pre minúty. Za ním uveďte počet dní alebo minút, o ktoré sa chcete vrátiť, a použite znamienka + a – ako väčšie a menšie ako.

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

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

Skombinujte HĽADAŤ s ďalšími príkazmi systému Linux(Combine FIND with Other Linux Commands)

Vyššie je uvedený jeden príklad použitia find s príkazom grep a môžete ho použiť s mnohými ďalšími. Môžete vidieť, že používanie príkazov find a iných príkazov môže byť veľmi výkonné a môže vám ušetriť veľa času. Predstavte si(Imagine) , že musíte vymazať veľa súborov určitého typu. Namiesto hľadania v prieskumníkovi súborov jednoducho vytvorte správny príkaz a je to hotové za pár sekúnd. Ako teraz použijete príkaz find?



About the author

Som počítačový inžinier s viac ako 10-ročnými skúsenosťami v softvérovom priemysle, konkrétne v Microsoft Office. Napísal som články a návody na rôzne témy týkajúce sa balíka Office vrátane tipov, ako efektívnejšie využívať jeho funkcie, trikov na zvládnutie bežných kancelárskych úloh a podobne. Moje schopnosti spisovateľa zo mňa tiež robia vynikajúci zdroj pre ostatných, ktorí sa chcú dozvedieť o Office alebo len potrebujú rýchlu radu.



Related posts