FIND(1L) FIND(1L)
find - fjlokat keres egy knyvtrstruktrban
find [tvonal...] [kifejezs]
Ez a kziknyv lap a find GNU vltozatt dokumentlja.
A find program a megadott fjloktl indul knyvtrfban keres a megadott
kifejezs balrl jobbra val kirtkelsvel. A program ltal figyelembe vett
precedenicaszablyokat lsd az OPERTOROK fejezetetben. Mihelyt egyrtelm,
hogy egy fjl megfelel-e a kifejezsnek, a kvetkez fjl vizsglatba kezd.
(Nem felttlen rtkeli ki teht a teljes kifejezst. Pl. ha egy and kife-
jezs bal oldaln hamis, vagy egy or kifejezs bal oldaln igaz felttel
van, az egyrtelmv teszi az egsz kifejezs rtkt. Ilyenkor a find nem
vizsglja tovbb a kifejezst.)
Az els argumentum, amely `-', `(', `)', `,', vagy `!' jellel kezddik
jelenti a kifejezs elejt. Az ez eltti argumentumokat keressi tvonalak-
nak veszi a program, az ez utniakat a kifejezs tovbbi rszeknt. Ha nincs
tvonal megadva, az aktulis knyvtrbl indul a keress. Ha pedig nincs
kifejezs megadva, a `-print' lesz hasznlva.
A find kilpsi llapota 0 ha minden fjlt sikeresen feldolgozott, nagyobb,
mint 0, ha valami hiba trtnt.
A kifejezs opcikbl, tesztekbl s akcikbl ll, melyeket opertorok vlasz-
tanak el egymstl. Az opcik a teljes mveletet befolysoljk, nemcsak egy
fjlra vonatkoznak, s mindig igaz a visszatrsi rtkk. A tesztek igaz s
hamis rtket egyarnt visszaadhatnak. Az akciknak oldalhatsuk (side
effect) van, s igaz vagy hamis rtkkel is visszatrhetnek.
Az opertor elhagyhat, ilyenkor az alaprtelmezett -and kerl behe-
lyettestsre. Amennyiben a kifejezs a -prune -on kvl nem tartalmaz
akcit, a -print lesz vgrehajtva minden fjlra, melyre a kifejezs igaz.
Minden opci mindig igaz rtket ad vissza. Mindig hatnak, nemcsak akkor,
amikor a feldolgozs eljut a helykre. Ezrt az ttekinthetsg kedvrt a
kifejezs elejre clszer tenni ket.
-daystart
Az idpontokat (-amin, -atime, -cmin, -ctime, -mmin, s -mtime
esete) a mai nap kezdettl szmtja, nem 24 rval ezelttl.
-depth A knyvtrak feldolgozsa eltt tartalmukat dolgozza fel.
-follow
Nem a szimbolikus ktsekre hivatkozik, hanem az ltaluk mutatott
fjlra. Bekapcsolja -noleaf-ot is.
-help, --help
Egy sszegzst r ki a find hasznlatrl, majd kilp.
-maxdepth levels
Legfeljebb levels (ez egy nemnegatv szm) mlysgben megy bele a
knyvtrstruktrba. `-maxdepth 0' azt jelenti, hogy csak a paranc-
ssorban argumentumknt megadott fjlokra kell a teszteket s az
akcikat vgrehajtani.
-mindepth levels
A levels-ben adott nemnegatv egsznl kisebb mlysgben nem alkalmaz
egyetlen tesztet vagy akcit sem. `-mindepth 1' azt jelenti, hogy
a parancssori argumentumokat nem, csak az alattuk lev knyvtrakat
dolgozza fel.
-mount Nem megy bele olyan alknyvtrba, amely ms fjlrendszeren van.
Ugyanaz, mint -xdev. (Csak kompatibilitsi okokbl kerlt imple-
mentlsra.)
-noleaf
Nem hasznlja azt a feltevst, hogy a knyvtrak kettvel kevesebb
alknyvtrat tartalmaznak, mint a kemny ktseik szma. Erre olyankor
van szksg, amikor a keress olyan fjlrendszeren trtnik, amelyik
nem kveti a Unix knyvtrkonvenciit, mint pl. az MS-DOS vagy a CD-
ROM-ok.
Unix alatt ugyanis minden knyvtrnak van kt kemny ktse: a sajt neve s a
`.' bejegyzs. Tovbb, minden alknyvtrnak van egy `..' bejegyzse, amely
r vonatkozik. Ezrt teht a Unix-ban egy knyvtr kemny ktseinek szma
mindig kettvel tbb alknyvtrainak szmnl. Ennek felhasznlsval a keress
Unix rendszereken jelentsen gyorsthat, mert a kemny ktsek szmnl kettvel
kevesebb alknyvtr megvizsglsa utn nem kell tovbbiakat keresni, azaz nem
kell egy csom msik fjlt vizsglni, hisz azok biztosan normlis, azaz
"levl" (leaf) fjlok. Ez a felttelezs termszetesen nem igaz ms rendsz-
erekben, gy ott find kihagyhatna alknyvtrakat.
-version, --version
Kirja a verziszmot s kilp.
-xdev Nem megy bele olyan alknyvtrba, amely ms fjlrendszeren van.
Numerikus argumentumok az albbi mdon adhatk meg:
+n nagyobb mint n,
-n kisebb mint n,
n pontosan n.
-amin n
A fjl utoljra n perce lett hasznlva.
-anewer file
A fjl utols hasznlata frissebb, mint a file mdostsi dtuma.
-anewer -t csak akkor befolysolja a -follow, ha a -follow elbb
szerepel a parancssorban, mint -anewer.
-atime n
A fjl utoljra n*24 rja lett hasznlva.
-cmin n
A fjl sttusza n perce lett utoljra mdostva.
-cnewer file
A fjl utols sttuszmdostsa frissebb, mint a file mdostsi dtuma.
-cnewer -t csak akkor befolysolja a -follow, ha a -follow elbb
szerepel a parancssorban, mint -cnewer.
-ctime n
A fjl sttusza utoljra n*24 rja lett mdostva.
-empty A fjl res. (Szablyos fjlra s knyvtrra is vonatkozik.)
-false Mindig hamis
-fstype type
A fjl type tpus fjlrendszeren van. Az rvnyes fjlrendszer-tpusok
a Unix vltozataitl fggenek. Egy nem teljes lista a Unix rendsz-
erek alatt elfordul fjlrendszerekrl: ufs, 4.2, 4.3, nfs, tmp,
mfs, S51K, S52K. (Linux alatt a legjellemzbbek: ext2, msdos,
minix, iso9660, vfat.) A -printf a %F direktvval a fjlrendszer
tpusnak megllaptsra hasznlhat.
-gid n A fjl numerikus csoportazonostja (group ID) n.
-group gname
A fjl a gname csoporthoz tartozik. (Numerikus rtk is
megengedett.)
-ilname pattern
Ugyanaz, mint -lname, csak nem tesz klnbsget a kis- s nagybetk
kztt.
-iname pattern
Ugyanaz, mint -name, csak nem tesz klnbsget a kis- s nagybetk
kztt. Pldul a `fo*' s `F??' mintk illeszkednek a `Foo', `FOO',
`foo', `fOo' fjlnevekhez is.
-inum n
A fjl inode szma n.
-ipath pattern
Ugyanaz, mint -path, csak nem tesz klnbsget a kis- s nagybetk
kztt.
-iregex pattern
Ugyanaz, mint -regex, csak nem tesz klnbsget a kis- s nagybetk
kztt.
-links n
A fjlnak n ktse van.
-lname pattern
A fjl egy szimbolikus kts, melynek tartalma illeszkedik a pat-
tern burokmintra. A metakarakterek nem kezelik a `/'-t s a `.'-t
specilisan.
-mmin n
A fjl adatai utoljra n perce lettek mdostva.
-mtime n
A fjl adatai utoljra n*24 rja lettek mdostva.
-name pattern
A fjlnv alapja (azaz a fjl elrsi tja a bevezet knyvtrak nlkl)
illeszkedik a pattern burokminthoz. A metakarakterek (`*', `?' s
`[]') nem illeszkednek a fjl alapneve elejn tallhat `.'-hoz. Egy
knyvtr s az alatta lev fjlok figyelmen kvl hagysra a -prune
hasznlhat. (Lsd a -path lersnl lev pldt.)
-newer file
A fjl frissebben lett mdostva, mint file. -newer -t csak akkor
befolysolja a -follow, ha a -follow elbb szerepel a parancssor-
ban, mint -newer.
-nouser
Nincs a fjl numerikus felhasznli azonostjnak (user ID) megfelel
felhasznl.
-nogroup
Nincs a fjl numerikus csoportazonostjnak (group ID) megfelel
csoport.
-path pattern
A fjlnv illeszkedik a pattern burokminthoz. A metakarakterek nem
kezelik `/'-t s `.'-t specilisan. Pldul:
find . -path './sr*sc'
kinyomtat egy bejegyzst a './src/misc' knyvtrrl, ha az ltezik.
Egy teljes knyvtrfa figyelmen kvl hagyshoz a -prune hasznlhat a
fa minden fjljnak ellenrzse helyett. Pldul a tbbi fjl nevnek
nyomtatsa megvalsthat a kvetkez mdon:
find . -path './src/emacs' -prune -o -print
-perm mode
A fjl engedlybitjei pontosan a mode -nak megfelelek. A mode
megadsa lehet oktlis vagy szimbolikus. Szimbolikus esetben a 0
md a kiinduls.
-perm -mode
A mode minden engedlybitje be van lltva a fjlra is.
-perm +mode
A mode engedlybitjeinek valamelyike be van lltva a fjlra is.
-regex pattern
A fjlnv illeszkedik a pattern szablyos kifejezshez. Az
illeszkeds a teljes elrsi tra vonatkozik, nem a keressre. Pldul
egy `./fubar3' fjlhoz val illeszkedsre hasznlhat a `.*bar.' vagy
`.*b.*3' szablyos kifejezs, de a `b.*r3' nem.
-size n[bckw]
A fjl mrete n egysgnyi. Az egysg az 512-bjtos blokk
alaprtelmezsben vagy `b' vgzds esetn, bjt, ha a vgzds `c', kilo-
bjt, ha a vgzds `k', 2-bjtos sz, ha a vgzds `w'.
-true Mindig igaz.
-type c
A fjl c tpus, ahol a lehetsges rtkek:
b blokkos (pufferelt) specilis eszkzfjl
c karakteres (nem pufferelt) specilis eszkzfjl
d knyvtr
p cshlzat (named pipe, FIFO)
f szablyos fjl
l szimbolikus kts
s socket
-uid n A fjl numerikus felhasznli azonostja (user ID) n.
-used n
A fjl utoljra n nappal a sttusza megvltoztatsa utn volt haszn-
latban.
-user uname
A fjl a uname felhasznl tulajdonban van. (Numerikus rtk is
megengedett.)
-xtype c
Ugyanaz, mint -type, hacsak nem a fjl szimbolikus kts. Ebbean az
esetben: ha -follow nem adott, akkor igaz az rtke amennyiben a
fjl egy c tpus fjlra mutat link; amennyiben -follow is adott,
igaz, ha c egyenl `l'-lel. Ms szavakkal: szimbolikus kts esetn
-xtype annak a fjlnak a tpust vizsglja, amit -type nem vizsgl.
-exec command ;
Vgrehajtja a command parancsot. rtke igaz, ha a parancs 0
sttuszt ad vissza. A kvetkez `;'-ig a find minden argumentumt a
parancs argumentumnak veszi. A `{}' string az aktulisan feldol-
gozs alatt ll fjl nevvel helyettestdik. Ezen szerkezeteket
esetlegesen meg kell vdeni (a `\' hasznlatval) attl, hogy a
burok kifejtese ket. A parancs vgrehajtsa a kiindulsi knyvtrbl
trtnik.
-fls file
Igaz; ugyanaz, mint -ls, csak a file-ba r. (Az -fprint -hez
hasonlan.)
-fprint file
Igaz. A teljes fjlnevet a file fjlba rja. Amennyiben a file nem
ltezik a find futtatsakor, a find ltrehozza, ha pedig ltezik,
csonkolja. A ``/dev/stdout'' s ``/dev/stderr'' fjlenevket spe-
cilisan kezeli: a szabvnyos kimenetre s szabvnyos bemenetre
vonatkoznak.
-fprint0 file
Igaz; ugyanaz, mint -print0, csak azfile fjlba r. (Az -fprint
-hez hasonlan.)
-fprintf file format
Igaz; ugyanaz, mint -printf, csak azfile fjlba r. (Az -fprint
-hez hasonlan.)
-ok command ;
Ugyanaz, mint -exec, de elszr megkrdezi a felhasznlt a standard
bemeneten. Amennyiben a vlasz nem `y'-nal vagy `Y'-nal kezddik,
nem futtatja a parancsot, s hamis rtkkel tr vissza.
-print Igaz; a fjl teljes nevt, majd egy jsor-jelet a szabvnyos kimene-
tre rja.
-print0
Igaz; a fjl teljes nevt, majd egy null-karaktert a standard
kimenetre rja. Ez megengedi, hogy jsor-jelet tartalmaz fjlnevek
esetn a find kimenett feldolgoz programok jl mkdjenek.
-printf format
Igaz; a format ltal megadott formtumban nyomtat a a standard
kimenetre. rtelmezi a `\' s `%' direktvkat. Mezszlessg s pon-
tossg a C-beli `printf'-fel megegyez mdon adhat meg. A -print-tl
eltren -printf nem r ki automatikusan jsorjelet a kimenetre. A
direktvk a kvetkezk lehetnek:
\a Figyelmeztet cseng (alarm bell).
\b Fordtott trtvonal (backspace).
\c Ezen formtumbl val nyomtatst meglltja s kirja (flush) a
kimenetet.
\f Soremels (form feed).
\n jsor (newline).
\r Kocsi vissza (carriage return).
\t Vzszintes tabultor (horizontal tab).
\v Fggleges tabultor (vertical tab).
\\ Bet szerinti fordtott trtvonal (literal backslash, `\').
Egy `\', majed egy msik karakter rendes karakterknt viselkedik,
azaz mindegyik kinyomtatsra kerl.
%% Bet szerinti szzalkjel.
%a A flj utols elrsi ideje a C `ctime' fggvnynek formtumban.
%Ak A flj utols elrsi ideje a k ltal megadott formtumban. Ez
lehet `@', vagy egy direktva a C `strftime' fggvnynek
megfelelen. k lehetsges rtkeit a kvetkezkben megadjuk.
Nhny kzlk nem minden rendszeren elrhet a `strftime'
fggvnyek rendszerfggsge miatt.
@ 1970. janur 1. 00:00 GMT ta eltelt msodpercek.
Idmezk:
H ra (00..23)
I ra (01..12)
k ra ( 0..23)
l ra ( 1..12)
M perc (00..59)
p a `locale'-nak megfelel AM vagy PM
r id 12 rs formtumban (hh:mm:ss [AP]M)
S msodperc (00..61)
T id 24 rs formtumban (hh:mm:ss)
X a `locale'-nak megfelel idjelzs (H:M:S)
Z idzna (pl. EDT) vagy semmi, ha az idzna nem
meghatrozhat
Dtum mezk:
a a `locale'-nak megfelel rvidtett napnv (pl.
Sun..Sat)
A a `locale'-nak megfelel teljes napnv (pl. Sun-
day..Saturday)
b a `locale'-nak megfelel rvidtett hnapnv (pl.
Jan..Dec)
B a `locale'-nak megfelel teljes hnapnv (pl. Jan-
uary..December)
c a `locale'-nak megfelel dtum s id (pl. Sat Nov 04
12:02:33 EST 1989)
d a hnap napja (01..31)
D dtum (mm/dd/yy)
h ugyanaz, mint b
j az v napja (001..366)
m hnap (01..12)
U az v hnyadik hetrl van sz, ha vasrnappal kezdjk a
heteket (00..53)
w a ht hnyadik napja (0..6)
W az v hnyadik hetrl van sz, ha htfvel kezdjk a
heteket (00..53)
x a `locale'-nak megfelel dtum (pl. mm/dd/yy)
y az v utols kt jegye (00..99)
Y v (1970...)
%b A fjlmret 512 bjtos blokkokban (felkerektve).
%c A fjl sttusznak utols megvltoztatsi ideje a C `ctime'
fggvnynek formtumban.
%Ck A fjl sttusznak utols megvltoztatsi ideje a k formtum
ltal megadott mdon (%A-hoz hasonlan).
%d A fjl mlysge a knyvtrfban. A 0 azt jelenti, hogy a fjl
parancssori argumentum volt.
%f A fjl neve a bevezet knyvtrnevek nlkl.
%F A fjlrendszer neve. Ez az rtk hasznlhat az -fstype-nl.
%g A fjl csoportneve vagy a numerikus csoportazonost, ha
nincs neve a csoportnak.
%G A fjl numerikus csoportazonostja.
%h A teljes fjnv bevezet knyvtrnevei.
%H Azon parancssori argumentumok, melyek alatt nem tallt
fjlt a find.
%i A fjl inode szma decimlisan.
%k A fjl mrete 1K blokkokban (felkerektve).
%l A szimbolikus kts clja. (res, ha a fjl nem szimbolikus
kts.)
%m A fjl engedlybitjei oktlisan.
%n A fjl kemny ktseinek szma.
%p A fjl (teljes) neve.
%P A fjl neve azon parancssori argumentum nlkl, amely alatt
megtallta a find.
%s A fjl mrete bjtokban.
%t A fjl utols mdostsi ideje a C `ctime' fggvnynek formtum-
ban.
%Tk A fjl utols mdostsi ideje a k ltal megadott formban. (Lsd
%A-nl.)
%u A fjl tulajdonosnak neve, vagy numerikus felhasznli
azonostja, ha nincs neve a felhasznlnak.
%U A fjl tulajdonosnak numerikus felhasznli azonostja.
A `%' jel utn ll brmely ms karakter esetn csak a megadott
karakter rdik ki.
-prune Ha nincs -depth megadva, akkor igaz. Nem megy bele az aktulis
knyvtrba.
Ha -depth adott, akkor hamis s nincs hatsa.
-ls Igaz. listzza az aktulis fjlt `ls -dils' formban a standard
kimenetre. A blokkmret 1K, hacsak nem a POSIXLY_CORRECT
krnyezeti vltoznak rtket adtunk. Ekkor 512 bjtos blokkmrettel
szmol.
Az opertorokat cskken precedenciasorrendben listzzuk:
( expr )
Precedencia vltoztats.
! expr Igaz, ha az expr kifejezs hamis.
-not expr
Ugyanaz, mint ! expr.
expr1 expr2
Logikai s. Nem rtkeli ki expr2-t, ha expr1 hamis.
expr1 -a expr2
Ugyanaz, mint expr1 expr2.
expr1 -and expr2
Ugyanaz, mint expr1 expr2.
expr1 -o expr2
Logikai vagy. expr2-t nem rtkeli ki, ha expr1 igaz.
expr1 -or expr2
Ugyanaz, mint expr1 -o expr2.
expr1 , expr2
Listz. expr1 s expr2 is mindig kirtkelsre kerl. expr1 rtke nem
szmt, a lista expr2 rtkt adja vissza.
locate(1L), locatedb(5L), updatedb(1L), xargs(1L) Finding Files (Info
fjl, vagy nyomtatott vltozat)
Horvth Andrs <horvatha [AT] rs1.hu>
FIND(1L)
http://www.lifeaftercoffee.com … -and-unix/