Find
Pokud se vám nechce procházet tisíciřádkový výstup z man find
, třeba vám pomůže těchhle pár poznámek:
find . -name pattern
Projde podstrom aktuální složky a vypíše soubory, jejichž název (bez cesty) odpovídá vzoru pattern
. (Pattern je shell pattern, tedy používají se znaky “*”, “?” a “[]”; pattern musí být uzavřen v uvozovkách nebo apostrofech, aby na něj nemohl shell, ze kterého volám find
.)
Např.
find . -name '*.a.gz' -execdir command \;
-execdir
znamená, že příkaz command
se spustí ve složce, ve které byl odpovídající soubor nalezen. Argumenty až do středníku jsou argumenty vykonávaného příkazu. Může mezi nimi být řetězec '{}', ten bude nahrazen jménem právě zpracovávaného souboru.
find . -regex pattern
pattern
je tentokrát regulární výraz. Odpovídat mu musí celé jméno i s cestou, pokud tedy hledám např. soubory souvisící s ACL, nastavím pattern na '.*ACL.*'. Podobně se chová volba -iregex
, find však přestane rozlišovat malá a velká písmena.