Navazuji na předchozí článek, kde jsem popsal základy příkazu find. V dnešním článku si představíme možnosti pokročilejšího nastavení tohoto příkazu.
Vyhledávat podle velikosti souborů můžeme například takto
find /home -size +500k -name “*.jpg”
Při použití argumentu -size a parametru +500k nám příkaz vyhledá soubory o velikosti 500kB nebo větší, které mají příponu jpg.
Takto zadaný příkaz vyhledá soubory menší než 1MB, mající příponu jpg.
find /home -size -1M -name “*.jpg“
A tento příkaz nám vyhledá soubory menší než 10 bytů. Při použití přepínače + vyhledá soubory větší než 10 bytů.
find /home -size -10c -name “*.jpg“
Zadáme-li příkaz takto s použitím argumentu -mtime
find . -mtime +5 -iname *soubor*
vyhledá nám soubory vytvořené před 5ti dny.
Chceme-li zobrazit pouze názvy souborů bez cesty k nim, použijeme argument printf. Příkaz potom vypadá takto
find /home -name “soubor*“ -printf “%fn“
Příkaz zadaný takto
find /usr/lib -size +1M -name “*.so“ | xargs ls -lh
nám prohledá zadaný adresář, a pokud nenajde žádný soubor specifikovaný zadanými argumenty (větší nebo rovno 1MB a s koncovkou so), vypíše obsah zadaného adresáře.
Tento příkaz vyhledá 20 největších souborů
find . -type f -print0 | xargs -0 du -h | sort -hr | head -20
A nakonec chceme-li vyhledat nějaký text uvnitř souboru, můžeme použít některý z těchto příkazů
find . -type f -exec grep -il “ahoj“ {} find . -type f -name “*.py“ -exec grep -il “ahoj“ {} find . -type f -user uzivatel -name “*.py“ -exec grep -il “ahoj“ {}
První příklad vyhledá slovo ahoj (argument grep) v jakémkoliv souboru v daném adresáři.
Druhý příklad vyhledá slovo ahoj v souborech s koncovkou py (argument -name) v daném adresáři.
A třetí příklad vyhledá slovo ahoj v souborech s koncovkou py v daném adresáři, které patří určitému uživateli (argument -user).
Další způsoby vyhledávání spočívají v kombinaci argumentů a parametrů. V podstatě platí, že lze bez problémů vyhledat jakýkoliv soubor, který se nachází v adresářové struktuře na disku počítače.
Každopádně příkaz find je velmi šikovný nástroj s širokými možnostmi použití a nastavení.