GNU/Linux >> Znalost Linux >  >> Linux

Linux Find Command s praktickými příklady

Příkaz find je výkonný vyhledávací nástroj používaný k vyhledání souborů v operačních systémech Linux a Unix. Dokáže najít soubory a adresáře na základě různých kritérií, jako je název, přípona, typ, datum úpravy a vytvoření, oprávnění, velikost, vlastník.

Find může také provést akci založenou na příkazu, například vyhledat soubory a provést delete, count atd.

Tento tutoriál se zaměří na vysvětlení způsobu použití příkazu find a provede vás příklady.

Syntaxe:

Základní syntaxe najít použití příkazu je následující:

find <directory-to-search> [OPTIONS] <find name,file,extension>

-H a -L volby se používají ke správě symbolických odkazů při vyhledávání, -P (nesledovat symbolické odkazy) a -L (sledovat symbolické odkazy).

1. Najděte soubor podle názvu

Chcete-li najít soubor podle jeho jména , použijte příkaz find s -name možnost.

Za předpokladu, že chcete vyhledat soubor s názvem 'nginx.yaml' v adresáři Documents, můžete spustit následující příkaz:

$ find /Documents -name nginx.yaml

To najde soubor s názvem "nginx.yaml" v Documents/ a všech podadresářích:

Navíc, chcete-li vyhledat soubor "nginx.yaml" v aktuálním adresáři a všech jeho podadresářích, spusťte:

$ find -name nginx.yaml

Tečka (.) za příkazem find znamená, že se má začít hledat v aktuálním adresáři:

$ find . -name nginx.yaml

2. Najít soubory podle přípony

Pokud chcete hledat všechny soubory podle přípony , můžete použít příkaz find s -name možnost následující s *.

Můžete například vyhledat všechny soubory s příponou '.png' v domovském adresáři spuštěním následujícího příkazu:

$ find $HOME -name *.png

3. Najít pouze adresáře

Pokud chcete hledat pouze adresáře , můžete spustit příkaz find pomocí -type d možnost.

Předpokládejme, že chcete vyhledat všechny adresáře ve složce Dokumenty/, spusťte:

$ find /Documents -type d

4. Najít pouze soubory

V Linuxu existuje mnoho různých typů souborů, jako jsou:adresáře, symbolické odkazy, socket, běžné soubory atd. Pokud chcete hledat pouze běžné soubory , můžete spustit příkaz find s volbou '-type f'.

Například za předpokladu, že v aktuálním adresáři najdete pouze soubory, spusťte:

$ find . -type f

5. Najít a odstranit

V některých situacích chcete najít a smazat soubory/adresáře, které již nepotřebujete, můžete spustit příkaz find s volbou '-delete'.

Například nalezení všech obrázků s příponou *.png ve složce Dokumenty/ a jejich odstranění:

$ find /Documents -name *.png -delete

6. Najděte soubory se specifickými oprávněními

Pokud chcete vyhledat všechny soubory, které mají specifická oprávnění , můžete použít linuxový příkaz find s volbou '-perm'.

Chcete-li například najít soubory, které mají oprávnění '755', spusťte:

$ find . -type f -perm 775 -exec ls -l {} \;

7. Vyhledejte soubory a adresáře podle data/času

Linuxový příkaz find vám umožňuje vyhledávat soubory a adresáře podle data/časového razítka.

Můžete použít příkaz find s volbou '-mtime -N' k nalezení souborů, které byly naposledy upraveny před 'N' dny. Chcete-li například vyhledat všechny soubory, které byly změněny za poslední 2 dny v aktuálním adresáři, spusťte:

$ find . -type f -mtime -2 -exec ls -l {} \;

Dalším způsobem, jak použít příkaz find k vyhledání souborů/adresářů podle data/času, je použití volby '-newerXY'. Kde X a Y mohou být:

a - čas přístupu k referenčnímu souboru

B - čas narození referenčního souboru

c - čas změny stavu inodu referenčního souboru

m - čas úpravy referenčního souboru

t - odkaz se interpretuje přímo jako čas

Chcete-li například vyhledat všechny soubory upravené 4. července 2020 v aktuálním adresáři, spusťte:

$ find . -type f -newermt 2020-07-04 -ls

8. Vyhledejte soubory a adresáře podle velikosti

Linuxový příkaz find vám umožňuje vyhledávat soubory/adresáře podle velikosti spuštěním příkazu s volbou '-size'.

Za předpokladu, že chcete najít soubory, které jsou větší než 1 GB, můžete spustit následující příkaz:

$ find . -type f -size +1G

Praktické příklady

01) Najděte prázdné soubory/adresáře

Tento výstup zobrazí seznam všech prázdných souborů a složek v aktuálním adresáři a podadresářích:

$ find . -empty -ls

02) Najít všechny soubory .jpg

$ find . -name *.jpg

03) Najít všechny adresáře s oprávněním 644

Výstup zobrazuje všechny složky v aktuálním adresáři nebo podadresáři, které mají oprávnění 644:

$ find . -type d -perm 644 -ls

04) Najděte soubory vlastněné konkrétním uživatelem

Pokud chcete zkontrolovat všechny soubory vlastněné uživatelem "cas" v aktuálním adresáři, můžete to udělat následovně:

$ find . -user cas -ls

05) Najít soubory podle čísla inodu

Chcete-li vyhledat soubor podle jeho čísla inodu, můžete použít find s -inum volba. Například:

$ find -inum 534937

06) Spočítat počet souborů

$ find -type f -exec basename {} \; | wc -l

07) Spočítat počet adresářů

$ find -type d -exec basename {} \; | wc -l

08) Vyhledávání souborů s určitou hloubkou

Za předpokladu, že chcete hledat soubor "Dockerfile" ve složce HOME a jejích podadresářích a ne v podadresářích další úrovně, musíte nastavit volbu '-maxdepth' na 2 následovně:

$ find $HOME -maxdepth 2 -name Dockerfile

Závěr

Dalším mocným nástrojem je příkaz fd, který je alternativou příkazu find.

V tomto tutoriálu jsme se naučili, jak používat Linux příkaz find k hledání souborů a adresářů. Děkujeme za přečtení a zanechte prosím svůj návrh v sekci komentářů níže.


Linux
  1. Použití linuxového příkazu find – Použití s ​​příklady

  2. Praktické příklady příkazu rsync v Linuxu

  3. Jak najít soubory pomocí příkazu fd v Linuxu

  1. 25 Užitečné hledání Příkaz Praktické příklady v Linuxu

  2. Linuxový příkaz rsync s praktickými příklady

  3. najdete příklady příkazů v Linuxu

  1. wc Linux Command s příklady

  2. JQ Command v Linuxu s příklady

  3. Praktické příklady příkazu Unzip v Linuxu