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.