Find
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
Otsida saab ka suuruse järgi
find * -size +50000
kõik 50Mb suuremad failid näidatakse meile-
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õi kõiki ".avi" laiendiga faile
find /usr -type f -name "*.avi"
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 {} \;
seda saab kasutada ka failide seest mingi kindla rea leidmiseks
find . -exec grep "www" '{}' \; -print
mille puhul tuuakse ekraanile aktiivse kataloogi failidest read kus on olemas www nimi
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