GNU/Linux >> Znalost Linux >  >> Linux

Jak vyloučit adresář při hledání souborů v Linuxu

V Linuxu se příkaz find používá k hledání souborů nebo složek z příkazového řádku. Je to složitý příkaz a má velké množství možností, argumentů a režimů.

Nejběžnější použití příkazu najít je hledat soubory pomocí regulárního výrazu nebo celého souboru(ů), který se má prohledat.

[ Také by se vám mohlo líbit:Jak najít soubory obsahující konkrétní textový řetězec v Linuxu ]

Chcete-li například vyhledat soubory s názvy začínajícími na ‘file_‘ , můžeme spustit:

$ find . -name 'file_*'

Jak můžete vidět výše, výstupem jsou úplné cesty k souborům, které jsou vráceny hledáním. Zde je '.' znamená aktuální adresář . Najít vyhledá vzor názvu souboru v aktuálním adresáři, všech podadresářích atd. až do nejhlubší úrovně struktury souboru. Podobně můžete mít jakýkoli jiný adresář namísto '.' .

Vyloučit adresář při hledání souborů

Nyní mohou nastat situace, kdy si uživatel je jistý, že určitá složka nebo složky neobsahují hledaný soubor. Proto je dobré takové složky z vyhledávání vyloučit, aby příkaz vrátil výsledky rychleji.

Chcete-li vyloučit adresář z vyhledávání, použijte '-prune' argument:

$ find . -name './test' -prune -o -name 'file_*'

Nejprve analyzujme, co se zde děje.

Část "-name './test' -prune" znamená:vyloučit složku ‘test’ z hledání. Poté '-o' říká příkazu:co jiného by se mělo udělat, jakmile příkaz vyloučí ‘test‘ . Jednoduše předáme vzor popsaný v předchozím příkladu zde.

Tento vzor nyní poběží ve všech složkách kromě ‘test‘ .

Nyní můžete vidět, že hledání skutečně vylučuje složku ‘test’ . Tiskne se však samotný název složky.

Vyloučit název adresáře z funkce Najít výstup

Chcete-li se tomu vyhnout, jednoduše připojte '-print' na konci. Tato volba vyloučí název adresáře z výstupu.

$ find . -name './test' -prune -o -name 'file_*' -print

Vzor nyní hledal soubory v aktuálním adresáři a vyloučil ‘test‘ adresář.

Závěr

V tomto článku jsme viděli, jak vyloučit adresář při hledání souborů pomocí příkazu find. Všimněte si, že příklady uvedené v tomto článku vyhledávají soubory na základě názvů souborů ('-name') . Existuje mnoho dalších způsobů, jak hledat soubory v rámci příkazu find. Ujistěte se, že se odkazujete na manuálovou stránku příkazu najít abyste je prozkoumali do hloubky.

Děkujeme za přečtení a neváhejte zanechat zpětnou vazbu nebo dotazy v komentářích níže.


Linux
  1. Hledání souborů v příkazovém řádku (jak na to)

  2. Jak zjistit počet souborů v adresáři a podadresářích

  3. Jak najít soubor v Linuxu ve všech adresářích rekurzivně

  1. Jak přejmenovat soubory v Linuxu

  2. Jak vyloučit soubory určité velikosti z kopírování v Linuxu

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

  1. Jak používat Linuxový příkaz find k hledání souborů

  2. Jak vyloučit adresář v find . příkaz

  3. Příkaz Linux:Jak „najít“ pouze textové soubory?