Príkaz find v Linuxe sa používa na vyhľadávanie súborov a adresárov v zadaných adresároch na základe rôznych kritérií. Tento príkaz je jedným z najvýkonnejších a najrozšírenejších nástrojov v Linuxe.
Základný formát príkazu find je nasledujúci:
find [path] [expression]
kde:
jecesta k adresáru, v ktorom sa majú vyhľadávať súbory (štandardne find prehľadáva aktuálny adresár a všetky jeho podadresáre);
výraz je výraz, ktorý definuje kritériá na vyhľadávanie súborov.
Nižšie sú uvedené niektoré z najbežnejších kritérií vyhľadávania súborov, ktoré možno použiť vo výraze príkazu find:
-name: vyhľadávanie súborov podľa názvu. Napríklad:
find /home/user -name myfile.txt
-(napríklad f pre bežné súbory alebo d pre adresáre). Napríklad:
find /home/user -type f
-size: vyhľadávanie súborov podľa veľkosti. Napríklad:
find /home/user -size +10M
-mtime: vyhľadávanie súborov podľa času poslednej zmeny. Napríklad:
find /home/user -mtime -7
-user a -group: vyhľadávanie súborov podľa vlastníka a skupiny. Napríklad:
find /home/user -user bob -group users
Na kombináciu viacerých kritérií vyhľadávania do jedného výrazu môžete použiť logické operátory -and, -or a -not.
Napríklad nasledujúci príkaz vyhľadá všetky súbory v adresári /home/user, ktoré boli zmenené za posledných 7 dní a sú väčšie ako 10 megabajtov:
find /home/user -type f -mtime -7 -size +10M
Príkaz find tiež umožňuje vykonávať rôzne akcie s nájdenými súbormi pomocou možnosti -exec. Napríklad môžete odstrániť všetky súbory, ktoré boli modifikované pred viac ako 30 dňami, pomocou nasledujúceho príkazu:
find /home/user -type f -mtime +30 -exec rm {} ;
V tomto prípade sa pomocou možnosti -exec spustí príkaz rm pre každý nájdený súbor a v príkaze sa namiesto názvu súboru použije {}.
Príkaz find je výkonný nástroj na vyhľadávanie súborov a adresárov v systéme Linux, ktorý možno použiť na vykonávanie rôznych úloh súvisiacich so správou.
Príkaz find podporuje mnoho ďalších možností, ktoré možno použiť na presnejšie vyhľadávanie súborov:
-iname: vyhľadávanie súborov podľa názvu bez ohľadu na veľkosť znakov. Napríklad:
find /home/user -iname myfile.txt
-regex: vyhľadá súbory, ktorých názvy zodpovedajú zadanému regulárnemu výrazu. Napríklad:
find /home/user -regex ".*.txt$"
-maxdepth a -mindepth: obmedzí hĺbku vyhľadávania súborov v podadresároch. Napríklad:
find /home/user -maxdepth 2 -type f
-prune: vylúčenie určitých adresárov z vyhľadávania. Napríklad:
find /home/user -path /home/user/excluded -prune -o -type f -print
-print: vypíše zoznam nájdených súborov na štandardný výstup. Napríklad:
find /home/user -type f -print
find podporuje aj vyhľadávanie súborov podľa rôznych atribútov, ako sú oprávnenia, atribúty súborov, značky SELinux a iné. Viac informácií o týchto možnostiach nájdete v dokumentácii príkazu find.
Príkaz môže vyhľadávať súbory a adresáre v celom súborovom systéme, čo môže zabrať veľa času a zdrojov. Preto je dôležité byť pri používaní tohto príkazu opatrný a uistiť sa, že kritériá vyhľadávania sú nastavené správne, aby sa zabránilo nájdeniu nepotrebných súborov alebo chýb v systéme.