IT blok - Michal Šika

kutilovo živobytí

Pokročilé využití příkazu find

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í.

Michal Šika