Vyhledávání souborů

3. Příkaz find

Příkaz find má významně strukturovanější syntaxi. Je poněkud pomalejší než příkaz locate, protože vždy prohledává disk v reálném čase, nicméně disponuje velkým množstvím přepínačů a možnostmi definice parametrů pro hledání. Kromě běžných přepínáčů, které lze nastudovat z dokumentace k příkazu, disponuje tzv. testy, díky kterým lze blíže specifikovat, co uživatel hledá. Nejčastěji se používají testy

  • -name - hledá soubor podle uvedeného jména
  • -type - hledá podle typu souboru (f - normalní soubor, d - adresář, l - link)
  • -user [username] - hledá soubory, jejichž vlastníkem je uvedený uživatel
  • -size [filesize] - hledá soubory s uvedenou velikostí
  • -empty - hledá prázdné soubory
  • -mindepth n | -maxdepth n - hledá soubory na uvedené úrovni vnoření


Testy je možné kombinovat a používat jich více současně. Příkaz find defaultně vyhledává od aktuálního místa směrem níže ke vnořeným adresářům. Je-li potřeba začít hledání z jiného místa, uvede se jako první argument cesta k tomuto místu.



Kromě testů disponuje příkaz find sadou akcí, které umožní provést příslušnou akci s nalezenými výsledky. Nejčastější akce jsou

  • -delete - nalezené soubory následně smaže
  • -ls - provede výpis detailních informací u nalezených souborů
  • -exec - spustí externí příkaz shellu pro každý soubor ze sady nalezených záznamů (v závěru této akce se použijí speciální operátory {} \; kde {} reprezentuje sadu nalezených výsledků, středník ukončuje samotný příkaz v části exec, protože se ale jedná o funkční operátor, musí být potlačena jeho funkce zpětným lomítkem)