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.