Provided by:
manpages-fi_0.2-4_all 
NIMI
find - tiedostojen haku hakemistohierarkiasta
YLEISKATSAUS
find [polku...] [lauseke]
KUVAUS
Tämä käsikirjan sivu dokumentoi find-ohjelman GNU-version. find etsii
kuhunkin annettuun tiedostonimeen liittyvän hakemistopuun laskemalla
annetun lausekkeen arvon vasemmalta oikealle noudattaen lasken‐
tajärjestyssääntöjä (katso luku OPERAATTORIT), kunnes lopputulos on
tiedossa (vasemman puolen and operaatioiden tulos on epätosi ja or
operaatioiden tosi), jolloin find siirtyy seuraavaan tiedostonimeen.
Ensimmäinen argumentti, joka alkaa ‘-’, ‘(’, ‘)’, ‘,’ tai ‘!’ oletetaan
lausekkeen alkukohdaksi; kaikki argumentit ennen sitä ovat hakupolkuja,
ja kaikki argumentit sen jälkeen ovat lausekkeen jatkoa. Ellei polkuja
ole annettu, käytetään nykyistä hakemistoa. Jos mitään lauseketta ei
ole annettu, käytetään lauseketta ‘-print’.
find-ohjelman suorituksen jälkeen paluuarvo on 0, jos kaikki tiedostot
on käsitelty onnistuneesti ja suurempi kuin 0, jos esiintyy virheitä.
LAUSEKKEET
Lauseke koostuu optioista (jotka vaikuttavat kokonaisoperaatioon
eivätkä tietyn tiedoston käsittelyyn, ja palauttavat aina arvon tosi),
testeistä (jotka palauttavat arvon tosi tai epätosi) ja toiminnoista
(joilla on sivuvaikutuksia ja jotka palauttavat arvon tosi tai
epätosi). Näitä kaikkia erottavat toisistaan operaattorit. -and on ole‐
tusarvo, jos operaattori puuttuu. Jos lauseke ei sisällä muita toim‐
intoja kuin -prune, käytetään toimintoa -print kaikille tiedostoille,
joilla lauseke saa arvon tosi.
OPTIOT
Kaikki optiot palauttavat aina arvon tosi. Ne vaikuttavat aina, eivät
pelkästään silloin, kun niiden paikka lausekkeessa saavutetaan. Siksi
ne on paras selvyyden vuoksi sijoittaa lausekkeen alkuun.
-daystart
Mittaa aikoja (-amin, -atime, -cmin, -ctime, -mmin ja -mtime)
tämän vuorokauden alusta eikä ajankohdasta 24 tuntia sitten.
-depth Prosessoi kunkin hakemiston sisällön ennen hakemistoa itseään.
-follow
Seuraa symbolisia linkkejä. Olettaa option -noleaf.
-help, --help
Tulostaa find -ohjelman komentorivin käyttöohjeen ja poistuu
ohjelmasta.
-maxdepth tasot
Laskeudutaan enintään tasot (ei-negatiivinen kokonaisluku)
hakemistotasoa komentoriviargumenttien alapuolelle.‘-maxdepth 0’
tarkoittaa, että testejä ja toimintoja voidaan soveltaa vain
komentoriviargumentteihin.
-mindepth tasot
Ei sovelleta testejä tai toimintoja tasoilla, jotka ovat
vähemmän kuin tasot (ei-negatiivinen kokonaisluku). ‘-mindepth
1’ tarkoittaa sitä, että käsitellään kaikki tiedostot lukuunot‐
tamatta komentoriviargumentteja.
-mount Ei laskeuduta muiden tiedostojärjestelmien hakemistoihin. Option
-xdev vaihtoehtoinen nimi, yhteensopivuuden takia eräiden muiden
find-versioiden kanssa.
-noleaf
Ei oleteta, että hakemistoissa on 2 alihakemistoa vähemmän kuin
niiden kovien linkkien lukumäärä. Tämä optio tarvitaan, kun haku
kohdistuu tiedostojärjestelmiin, jotka eivät noudata Unixin
hakemisto-linkki-konventiota, esim. CD-ROM- tai MS-DOS -tiedos‐
tojärjestelmät tai AFS-tietovälineasemat. Jokaisella normaalin
Unix-tiedostojärjestelmän hakemistolla on ainakin 2 kovaa
linkkiä: sen nimi ja sen ‘.’-linkki. Lisäksi sen alihakemis‐
toilla (jos niitä on) on jokaisella ‘..’-linkki ko. hakemistoon.
Kun find tutkii hakemistoa, ja havaitsee alihakemistojen
lukumäärän olevan 2 pienempi kuin hakemiston linkkien lukumäärä,
se tietää, että loput linkeistä hakemistossa eivät ole hakemis‐
toja (hakemistopuun ‘lehti’-tiedostoja). Jos vain tiedostojen
nimet (eikä niiden tilatietoja) tarvitsee tutkia, tämä merkitsee
huomattavaa hakunopeuden lisäystä.
-version, --version
Näytä find:n version numero ja poistu ohjelmasta.
-xdev Ei laskeuduta muiden tiedostojärjestelmien hakemistoihin.
TESTIT
Numeeriset argumentit voidaan määritellä seuraavasti:
+n arvolle suurempi kuin n,
-n arvolle pienempi kuin n,
n arvolle yhtä kuin n.
-amin n
Tiedostoa luettiin viimeksi n minuuttia sitten.
-anewer tiedosto
Tiedostoa luettiin viimeksi myöhemmin kuin tiedostoa muutettiin.
-anewer ottaa huomioon option -follow vain, jos -follow on ennen
testiä -anewer komentorivillä.
-atime n
Tiedostoa luettiin viimeksi n*24 tuntia sitten.
-cmin n
Tiedoston tilaa muutettiin viimeksi n minuuttia sitten.
-cnewer tiedosto
Tiedoston tilaa muutettiin viimeksi myöhemmin kuin tiedosto
muutettiin. -cnewer ottaa huomioon option -follow vain jos
-follow on ennen testiä -cnewer komentorivillä.
-ctime n
Tiedoston tilaa muutettiin viimeksi n*24 tuntia sitten.
-empty Tiedosto on tyhjä ja joko tavallinen tiedosto tai hakemisto.
-false Aina epätosi.
-fstype tyyppi
Tiedosto on tyypin tyyppi tiedostojärjestelmässä. Kelvolliset
tiedostojärjestelmätyypit vaihtelevat eri Unix-versioissa. Voit
käyttää optiota -printf %F-direktiivin kanssa nähdäksesi tiedos‐
tojärjestelmiesi tyypit.
-gid n Tiedoston numeerinen ryhmätunnus on n.
-group ryhmätunnus
Tiedosto kuuluu ryhmään ryhmätunnus (numeerinen ryhmätunnus on
sallittu).
-ilname kuvio
Kuten -lname, mutta vertailu ei erota isoja ja pieniä kirjaimia.
-iname kuvio
Kuten -name, mutta vertailu ei erota isoja ja pieniä kirjaimia.
Esimerkiksi kuviot ‘fo*’ ja ‘F??’ vastaavat tiedostonimiä ‘Foo’,
‘FOO’, ‘foo’, ‘fOo’ jne.
-inum n
Tiedostolla on inode luku n.
-ipath kuvio
Kuten -path, mutta vertailu ei erota isoja ja pieniä kirjaimia.
-iregex kuvio
Kuten -regex, mutta vertailu ei erota isoja ja pieniä kirjaimia.
-links n
Tiedostolla on n linkkiä.
-lname kuvio
Tiedosto on symbolinen linkki, jonka sisältö vastaa komento‐
tulkin kuviota (shell pattern) kuvio. Metamerkit (metacharac‐
ters) eivät käsittele merkkejä ‘/’ tai ‘.’ erityisellä tavalla.
-mmin n
Tiedoston tietosisältöä muutettiin viimeksi n minuuttia sitten.
-mtime n
Tiedoston tietosisältöä muutettiin viimeksi n*24 tuntia sitten.
-name kuvio
Tiedostonimen perusosa (polku, josta nimen alun hakemistot on
poistettu) vastaa komentotulkin kuviota kuvio. Metamerkit (‘*’,
‘?’, ja ‘[]’) eivät vastaa merkkiä ‘.’ nimen perusosan alussa.
Käytä optiota -prune hakemiston ja sen alaisten tiedostojen ohi‐
tukseen; katso esimerkkiä option -path kuvauksessa.
-newer tiedosto
Tiedostoa muutettiin myöhemmin kuin tiedosto muutettiin. -newer
ottaa huomioon option -follow vain, jos -follow on ennen testiä
-newer komentorivillä.
-nouser
Mikään käyttäjä ei vastaa tiedoston numeerista käyttäjätunnusta.
-nogroup
Mikään ryhmä ei vastaa tiedoston numeerista ryhmätunnusta.
-path kuvio
Tiedostonimi vastaa komentotulkin kuviota kuvio. Metamerkit
eivät käsittele merkkejä ‘/’ tai ‘.’ erityisellä tavalla; siten
esimerkiksi
find . -path ’./sr*sc’
tulostaa merkinnän hakemistosta ’./src/misc’ (jos se on ole‐
massa). Jos haluat ohittaa kokonaisen hakemistopuun, käytä
optiota -prune, jolloin ei tarvitse tarkistaa puun jokaista
tiedostoa. Esimerkiksi hakemiston ‘src/emacs’ ja kaikkien sen
alaisten tiedostojen ja hakemistojen ohittamiseksi ja muiden
löytyneiden tiedostojen ja hakemistojen nimien tulostamiseksi
menettele seuraavasti:
find . -path ’./src/emacs’ -prune -o -print
-perm moodi
Tiedoston käyttöoikeusbitit ovat täsmälleen moodi (oktaali tai
symbolinen). Symboliset moodit käyttävät moodia 0 lähtökohtana.
-perm -moodi
Kaikki käyttöoikeusbitit moodi asetetaan tiedostolle.
-perm +moodi
Mitkä tahansa käyttöoikeusbitit moodi asetetaan tiedostolle.
-regex kuvio
Tiedostonimi vastaa säännöllistä lauseketta kuvio. Kyseessä on
koko polun vastaavuus, ei haku. Esimerkiksi tiedoston ‘./fubar3’
vastineen löytämiseksi voit käyttää säännöllistä lauseketta
‘.*bar.’ tai ‘.*b.*3’, mutta et lauseketta ‘b.*r3’.
-size n[bckw]
Tiedosto käyttää n yksikköä tilaa. Yksiköt ovat 512-tavuisia
lohkoja joko oletusarvoisesti tai jos ‘b’ seuraa arvoa n, tavuja
jos ‘c’ seuraa arvoa n, kilotavuja, jos ‘k’ seuraa arvoa n, tai
2-tavuisia sanoja, jos ‘w’ seuraa arvoa n. Koko ei ota huomioon
epäsuoria lohkoja, mutta ottaa huomioon harvat tiedostot, joita
ei tosiasiassa ole varattu.
-true Aina tosi.
-type c
Tiedosto on tyyppiä c:
b lohkolaitetiedosto (puskuroitu)
c merkkilaitetiedosto (puskuroimaton)
d hakemisto
p nimetty putki (FIFO)
f tavallinen tiedosto
l symbolinen linkki
s socket
-uid n Tiedoston numeerinen käyttäjätunnus on n.
-used n
Tiedostoa luettiin viimeksi n päivää sen jälkeen, kun sen tila
muuttui.
-user uname
Tiedoston omistaa käyttäjätunnus (numeerinen käyttäjätunnus sal‐
littu).
-xtype c
Sama kuin -type ellei tiedosto ole symbolinen linkki. Symbol‐
isen linkin tapauksessa: tosi, jos -follow ei ole annettu ja
tiedosto on linkki tyypin c tiedostoon; tosi, jos -follow on
annettu ja c ‘l’. Toisin sanoen, symbolisten linkkien tapauk‐
sessa -xtype tarkistaa tiedostotyypin, jota -type ei tarkista.
TOIMINNOT
-exec komento ;
Suorita komento komento; tosi jos paluuarvo on 0. Kaikki find:a
seuraavat argumentit ovat komennon argumentteja kunnes kohdataan
argumentti ‘;’. Merkkijono ‘{}’ korvataan nykyisellä tiedoston‐
imellä, joka prosessoidaan kaikkialla, missä se esiintyy komen‐
non argumenteissa, eikä pelkästään yksin esiintyesään, kuten on
asianlaita eräissä muissa find:n versioissa. Molemmat näistä
rakenteista saattavat tarvita suojausta (‘\’) tai lainaus‐
merkkejä komentotulkin tekemän laajennuksen estämiseksi.
Komento suoritetaan alkuhakemistossa.
-fls tiedosto
Tosi; kuten -ls, mutta kirjoittaa tiedostoon tiedosto kuten
-fprint.
-fprint tiedosto
Tosi; tulosta täydellinen tiedostonimi tiedostoon tiedosto. Jos
tiedostoa tiedosto ei ole, kun find toteutetaan, se luodaan;
jos se on olemassa, se typistetään. Tiedostonimet ‘‘/dev/std‐
out’’ ja ‘‘/dev/stderr’’ saavat erityiskäsittelyn; ne viittaavat
vastaavasti vakiotulosteeseen ja vakiovirheeseen.
-fprint0 tiedosto
Tosi; kuten -print0, mutta kirjoittaa tiedostoon tiedosto, kuten
-fprint.
-fprintf tiedosto mallinne
Tosi; kuten -print0, mutta kirjoittaa tiedostoon tiedosto, kuten
-fprint.
-ok komento ;
Kuten -exec, mutta kysyy ennen suoritusta käyttäjältä lupaa
(vakiosyötteestä); jos vastaus ei ala merkillä ‘y’ tai ‘Y’, älä
toteuta komentoa ja palauta epätosi.
-print Tosi; tulosta täydellinen tiedostonimi ja rivinvaihtomerkki
vakiotulosteeseen.
-print0
Tosi; tulosta täydellinen tiedostonimi ja nollamerkki (null)
vakiotulosteeseen. Tämä sallii komennon find tulostusta käsit‐
televien ohjelmien tulkita oikein tiedostonimet, joihin sisältyy
rivinvaihtoja.
-printf mallinne
Tosi; tulostaa mallinne vakiotulosteeseen ja tulkitsee
‘\’-merkit (escapes) ja ‘%’-ohjeet (directives). Kentänleveydet
ja tarkkuudet määritellään kuten C-funktiossa ‘printf‘. Toisin
kuin -print, -printf ei lisää rivinvaihtoa merkkijonon loppuun.
‘\’-merkit ( escapes) ja direktiivit ovat:
\a Äänimerkki.
\b Askel taakse.
\c Lopeta heti tämän mallinteen käsittely ja tulosta
käsitellyt.
\f Sivun vaihto.
\n Rivin vaihto.
\r Siirry rivin alkuun.
\t Vaakatabulointi.
\v Pystytabulointi.
\\ Kenoviiva (‘\’).
Kenoviiva ‘\’, jota seuraa jokin muu merkki käsitellään
tavallisena merkkinä; molemmat tulostetaan.
%% Tulostettava prosenttimerkki.
%a Tiedoston viimeisin lukuajankohta muotoiltuna kuten C-
kielen ‘ctime’- funktiossa.
%Ak Tiedoston viimeisin lukuajankohta muotoiltuna k
mukaisesti, mikä on joko ‘@’ tai C-kielen ‘strf‐
time’-funktion ohjausarvo. k:n mahdolliset arvot on
lueteltu alla; jotkut niistä eivät ole käytettävissä
kaikissa järjestelmissä funktion ‘strftime’ eroista
johtuen.
@ sekuntia tammikuun 1 päivästä 1970, 00:00 GMT
lukien.
Kellonaikakentät:
H tunti (00..23)
I tunti (01..12)
k tunti ( 0..23)
l tunti ( 1..12)
M minuutti (00..59)
p locale:n aamupäivä (AM) tai iltapäivä (PM)
r kellonaika, 12-tuntinen (hh:mm:ss [AP]M)
S sekunti (00..61)
T kellonaika, 24-tuntinen (hh:mm:ss)
X locale:n kellonaikaesitystapa (H:M:S)
Z aikavyöhyke (e.g., EDT), tai tyhjä, jos ei
määritelty
Päivämääräkentät:
a locale:n lyhennetty viikonpäivätunnus (Sun..Sat)
A locale:n vaihtelevanpituinen täydellinen
viikonpäivän nimi (Sunday..Saturday)
b locale:n lyhennetty kuukauden nimi (Jan..Dec)
B locale:n vaihtelevanpituinen täydellinen kuukau‐
den nimi (January..December)
c locale:n päivämäärä ja kellonaika (Sat Nov 04
12:02:33 EST 1989)
d kuukauden päivä (01..31)
D päivämäärä (mm/dd/yy)
h sama kuin b
j vuoden päivä (001..366)
m kuukausi (01..12)
U vuoden viikon numero; sunnuntai on viikon
ensimmäinen päivä (00..53)
w viikon päivä (0..6)
W vuoden viikon numero; maanantai on viikon
ensimmäinen päivä (00..53)
x locale:n päivämäärän esitysmuoto (mm/dd/yy)
y vuosiluvun kaksi viimeistä numeroa (00..99)
Y vuosi (1970...)
%b Tiedoston koko 512 tavun lohkoina (ylöspäin pyöristet‐
tynä).
%c Tiedoston viimeisin tilanmuutosajankohta C-kielen funk‐
tion ‘ctime’ palauttamassa muodossa.
%Ck Tiedoston viimeisin tilanmuutosajankohta k:n (sama kuin
%A) palauttamassa muodossa.
%d Tiedoston syvyys hakemistopuussa; 0 tarkoittaa, että
tiedosto on komentorivin argumentti.
%f Tiedostonimi, josta nimen alun hakemistot on poistettu
(vain nimen viimeinen osa).
%F Tiedostojärjestelmän tyyppi, jossa tiedosto on; tätä
arvoa voi käyttää -fstype.
%g Tiedoston ryhmänimi tai ryhmätunnus, jos nimeä ei ole.
%G Tiedoston numeerinen ryhmätunnus.
%h Tiedostonimen alkuun kuuluvat hakemistot (muut paitsi
nimen viimeinen osa).
%H Komentoriviargumentti, jossa tiedosto on.
%i Tiedoston inode-luku (desimaalina).
%k Tiedoston koko 1K lohkoina (ylöspäin pyöristettynä).
%l Symbolisen linkin kohde (tyhjä merkkijono, jos tiedosto
ei ole symbolinen linkki).
%m Tiedoston käyttöoikeusbitit (oktaalilukuna).
%n Tiedostoon viittaavien kovien linkkien lukumäärä.
%p Tiedoston nimi.
%P Tiedoston nimi, josta on poistettu se komentoriviargu‐
mentin nimi, jonka alaisena se oli.
%s Tiedoston koko tavuina.
%t Tiedoston viimeisin sisällönmuutosajankohta C-kielen
funktion ‘ctime’ palauttamassa muodossa.
%Tk Tiedoston viimeisin sisällönmuutosajankohta k:n (sama
kuin %A) palauttamassa muodossa.
%u Tiedoston käyttäjänimi, tai numeerinen käyttäjätunnus,
jos nimeä ei ole.
%U Tiedoston numeerinen käyttäjätunnus.
Merkki ‘%’ minkä tahansa muun merkin seuraamana hylätään (tämä
muu merkki tulostetaan).
-prune Jos -depth ei ole käytössä, tosi; älä laskeudu käytössä olevaan
hakemistoon.
Jos -depth on käytössä, epätosi; ei vaikutusta.
-ls Tosi; listaa tiedosto muodossa ‘ls -dils’ vakiotulosteeseen.
Lohkolaskelmat ovat 1K lohkoina, ellei ympäristömuuttuja
POSIXLY_CORRECT ole asetettu, missä tapauksessa käytetään 512
tavun lohkoja.
OPERAATTORIT
Lueteltuna alenevan suoritusjärjestyksen mukaan:
( expr )
Pakollinen suoritusjärjestys.
! expr Tosi jos expr on epätosi.
-not expr
Sama kuin ! expr.
expr1 expr2
Ja (oletus); Arvoa expr2 ei lasketa jos expr1 on epätosi.
expr1 -a expr2
Sama kuin expr1 expr2.
expr1 -and expr2
Sama kuin expr1 expr2.
expr1 -o expr2
Tai; Arvoa expr2 ei lasketa jos expr1 on tosi..
expr1 -or expr2
Sama kuin expr1 -o expr2.
expr1 , expr2
Lista; molemmat arvot expr1 ja expr2 lasketaan aina. Arvo expr1
hylätään; listan arvo on lausekkeen expr2 arvo.
ESIMERKKEJ
find $HOME -print
Listaa kaikki kotihakemistosi tiedostot ja alihakemistot.
find $HOME -name ’*.txt’ -print
Hae kaikki kotihakemistosi .txt-loppuiset tiedostot.
find $HOME \! -name ’[A-Z]*’ -print
Hae ne kotihakemistosi tiedostot, joiden nimi ei ala isolla kir‐
jaimella.
find / -type d -name ’man*’ -print
Etsi järjestelmän käsikirjahakemistot.
gzip ‘find \! -name ’*.gz’ -print‘
Etsi ja tiivistä ne aktiivisen hakemiston tiedostot, jotka eivät
pääty .gz
find . -size 0 -ok rm {} \;
Poista aktiivisen hakemiston tyhjät tiedostot (kysellen).
find . -mtime -14 -type f -print
Etsi kahden viime viikon aikana muutetut tavalliset tiedostot.
find / -user matti -print
Etsi käyttäjän matti kaikki tiedostot.
locate(1L) locatedb(5L) updatedb(1L) xargs(1L) Finding Files (on-line
järjestelmässä Info tai tulosteena).
7. Huhtikuuta 1998 FIND(1)