Způsoby platby Abuse

Příkaz find v systému Linux

04.03.2023, 02:43

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.

Formát příkazu

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.

Další možnosti

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.