Find

Allikas: Kuutõrvaja
Redaktsioon seisuga 8. august 2006, kell 14:27 kasutajalt Jj (arutelu | kaastöö)
(erin) ←Vanem redaktsioon | Viimane redaktsiooni (erin) | Uuem redaktsioon→ (erin)

Find - minimalistlik juhend näidetega

Nime järgi otsimine
Aja järgi otsimine
Faili tüüp
Programmide käivitamine 
Nime järgi otsimine

Failide otsimiseks sobib kasutatada programmi Find. Otsimiseks on vaja teada kataloogi, kust otsida ning eritunnust, millega otsingut kitsendada. Tavaline on failide otsimine nime järgi. Näiteks otsime jooksvast kataloogist ja selle alla jäävatest alamkataloogidest faili nimega 'failinimi'

find . -name failinimi -print

Kui täpne faili nimi pole teada, siis saab kasutada malle. Mall tuleb panna jutumärkide (") sisse. Programmile find saab ette anda kataloogi (või kataloogide nimekirja), millest faile otsida.

find /home/priit/ /home/mart/ -name "*.dvi" -print
find /home/priit/doc/ -name "looma*" -print

Vaid '-print' võtit kasutades teatab find ainult faili nime. Selline esitusviis sobib hästi findi väljundi mõne programmi sisendisse suunamiseks. Vajadusel on aga võimalik saada failide kohta rohkem infot:

find . -name "[WwVv]*" -ls

Võti -ls esitab ekraanile faili kohta praktiliselt sama hulga infot mis käsk 'ls -l'. Aja järgi otsimine

Iga failiga koos säilitatakse ka selle viimase muutmise ning viimase kasutamise aega. Vaikimisi käib aja arvestamine päevades. Otsime faile, mida on muudetud viimase kolme päeva jooksul

find . -mtime -3 -print

Seame tingimuse otsida faile, mida muudeti mitte hiljem kui seitsme ja mitte varem kui neljateist päeva eest käesoleva hetke suhtes

find . -mtime +7 -mtime -14 -print

Kui tekib vajadus otsida faile täpsema ajavahemiku järgi kui üks päev, siis on olemas ka võimalus lugeda minuteid: otsime faile, mida on muudetud viimase 10 minuti jooksul

find . -mmin -10 -print 

Analoogiliselt saab otsida: faili viimase kasutamise aja järgi (access time): -atime, -amin mõnel puhul ka faili loomise aja järgi (creation time): -ctime, -cmin

vaikimisi töötavad kõik otsingud hetkel kehtiva kellaaja suhtes. Viimane päev on seega antud hetkest 24h tagasi. Soovi korral on võimalik programmi teistsugune käitumine - lugeda päevi ööpäeva algusest alates. Otsime faile, mis loodud eile kell 00:00 ja 24:00 vahel

find . -daystart -ctime 1 -print

Faili tüüp

Enamlevinud tüübid on tavaline fail ja kataloog. Otsime näiteks 'a' tähega algavaid katalooge

find . -name "a*" -type d -print

Võimalikud failitüübid on toodud tabelis:

 b  plokkseade
 c  märkseade
 d  kataloog
 p  nimega toru
 f  tavaline fail
 l  nimeline viide (symblic link)
 s  pistik (socket)

Programmide käivitamine

Iga leitud faili jaoks saab käivitada programmi. Muu seas võimaldab see sooritada näiteks otsinugut faili sisu järgi. Kasulik on piirata otsingut tüübiga f, et vältida asjatuid veateateid. Käsk väljastab failide nimed, milles sisaldub sõna tiiger:

find . -type f -exec grep -l tiiger {} \;

Võime korraldada ka interaktiivse vahendi väga vanade (rohkem kui tuhat päeva) failide kustutamiseks: kõigepealt näidatakse faili atribuute ja seejärel küsitakse, kas fail kustutada

find /home/mart/tmp/ -mtime +1000 -ls -exec rm -i {} \;

© EENet 2000