V tomto příspěvku se podíváme na linux find
a jak hledat a najít soubory s různými atributy.
Linux find Command
Linux find
command je vestavěný výkonný nástroj, který lze použít k vyhledání a správě souborů a adresářů na základě široké škály vyhledávacích kritérií.
Soubory můžeme najít například podle jejich názvu, přípony, velikosti, oprávnění atd. Můžeme také použít find
příkaz k vyhledání konkrétního textu v souboru, jehož název neznáme.
Podívejme se na některé použití find
příkaz s příklady:
Vyhledávání souboru podle názvu
Pokud znáte název souboru, ale nemůžete si vzpomenout na adresář, ve kterém se nachází, můžete použít následující příkaz z kořenového adresáře:
find . -name sales.csv
Ukázkový výstup:
./accounts/sales.csv
Vyhledávání konkrétního souboru v adresáři
Pokud chcete vyhledat konkrétní soubor(y) v adresáři, můžeme použít:
find ./test -name testCases*
Ukázkový výstup:
./test/testCases10.txt
./test/testCasesPassed.txt
./test/testCasesFailed.log
Ve výše uvedeném případě hledáme pouze v adresáři „./test“.
Najít soubory podle přípony
Pro vyhledávání a hledání souborů podle určité přípony používáme:
find . -name *.jpg
Ukázkový výstup:
./test/results/failedTests.jpg
./test/project.jpg
./home/profile_pic.jpg
./tmp/cute-cats.jpg
Najít soubory nebo adresáře s určitými názvy
Abychom našli pouze soubory, musíme použít -f
možnost:
find ./ -type f -name "results*"
Ukázkový výstup:
./test/results_latest.log
./test/results_archive.pdf
Abychom našli pouze adresáře, musíme použít -d
možnost:
find ./ -type d -name "results*"
Ukázkový výstup:
./test/results
Najít soubory ve více adresářích
Pokud chcete prohledávat a vypisovat všechny soubory s daným názvem ve více adresářích, můžete buď začít hledat v kořenové složce, nebo pokud znáte adresáře, můžete je zadat.
Příklad:
find ./test ./logs -name failed*.* -type f
Ukázkový výstup:
./test/failed_tests.txt
./logs/failed_tests.log
Najít soubory obsahující určitý text
Někdy chcete najít soubor a neznáte jeho název, ale víte, že v něm je určitý text.
Můžete použít:
find ./test -type f -exec grep -l -i "login_scenarios" {} ;
Zde -i
volba se používá k ignorování velkých a malých písmen, takže Login_Scenarios a login_scenarios budou nalezeny.
Najít soubory podle velikosti
Můžeme dokonce najít soubory různých velikostí. Možnosti velikosti jsou:
c
bajtůk
kilobajtůM
MegabajtyG
gigabajtů
Například k nalezení souborů v přesné velikosti používáme:
find / -size 10M
A k nalezení souborů, které jsou větší než určitá velikost, používáme:
find ./test -size +2M
Výše uvedené najde všechny soubory, které jsou větší než 2 MB ve složce ./test.
Vyhledání a odstranění konkrétních souborů
K vyhledání a odstranění konkrétních souborů používáme:
find . -type f -name "temp*" -exec rm {} ;
Závěr
V tomto článku jste se dozvěděli, jak používat příkaz linux find k vyhledávání souborů podle názvu, přípony, velikosti a typu.