Příkaz find v systému Linux slouží k vyhledávání souborů a adresářů v zadaných adresářích na základě různých kritérií. Tento příkaz je jedním z nejvýkonnějších a nejrozšířenějších nástrojů v Linuxu.
Základní formát příkazu find je následující:
find [path] [expression]
kde:
cesta
je cesta k adresáři, ve kterém se mají hledat soubory (ve výchozím nastavení find prohledává aktuální adresář a všechny jeho podadresáře);
výraz
je výraz, který definuje kritéria pro hledání souborů.
Níže jsou uvedena některá nejběžnější kritéria pro vyhledávání souborů, která lze použít ve výrazu příkazu find:
-name
: vyhledává soubory podle názvu. Například:
find /home/user -name myfile.txt
-type
: vyhledá soubory určitého typu (například f
pro běžné soubory nebo d
pro adresáře). Například:
find /home/user -type f
-size
: vyhledá soubory podle velikosti. Například:
find /home/user -size +10M
-mtime
: vyhledá soubory podle času poslední změny. Například:
find /home/user -mtime -7
-user
a -group
: vyhledávání souborů podle vlastníka a skupiny. Například:
find /home/user -user bob -group users
Můžete použít logické operátory -and
, -or
a -not
pro spojení více kritérií vyhledávání do jednoho výrazu.
Například následující příkaz vyhledá všechny soubory v adresáři /home/user
, které byly změněny za posledních 7 dní a jsou větší než 10 megabajtů:
find /home/user -type f -mtime -7 -size +10M
Příkaz find také umožňuje provádět různé akce s nalezenými soubory pomocí parametru -exec
. Například můžete odstranit všechny soubory, které byly změněny před více než 30 dny, pomocí následujícího příkazu:
find /home/user -type f -mtime +30 -exec rm {} ;
Zde volba -exec
spustí příkaz rm
pro každý nalezený soubor a v příkazu nahradí název souboru pomocí {}
.
Příkaz find
je mocný nástroj pro vyhledávání souborů a adresářů v systému Linux, který lze použít k provádění různých úkolů souvisejících se správou.
Příkaz find
podporuje mnoho dalších možností, které lze použít k přesnějšímu vyhledávání souborů:
-iname
: vyhledává soubory podle názvu bez ohledu na velikost znaků. Například:
find /home/user -iname myfile.txt
-regex
: vyhledá soubory, jejichž názvy odpovídají zadanému regulárnímu výrazu. Například:
find /home/user -regex ".*.txt$"
-maxdepth
a -mindepth
: omezí hloubku vyhledávání souborů v podadresářích. Například:
find /home/user -maxdepth 2 -type f
-prune
: vyloučí z vyhledávání určité adresáře. Například:
find /home/user -path /home/user/excluded -prune -o -type f -print
-print
: vypíše seznam nalezených souborů na standardní výstup. Například:
find /home/user -type f -print
find
podporuje také vyhledávání souborů podle různých atributů, jako jsou oprávnění, atributy souborů, značky SELinuxu
a další. Více informací o těchto volbách naleznete v dokumentaci příkazu find
.
Příkaz může vyhledávat soubory a adresáře v celém souborovém systému, což může zabrat mnoho času a prostředků. Proto je důležité být při používání tohoto příkazu opatrný a ujistit se, že jsou správně nastavena kritéria vyhledávání, aby nedošlo k nalezení nepotřebných souborů nebo chyb v systému.