Linux repositories inspector
Aliases: oldfind(1), oldfind(1)

manpages-hu

Hungarian manpages

findutils

The GNU versions of find utilities (find and xargs)

NÉV

find - fájlokat keres egy könyvtárstruktúrában

ÁTTEKINTÉS

find [útvonal...] [kifejezés]

LEÍRÁS

Ez a kézikönyv lap a find GNU változatát dokumentálja.
A find program a megadott fájloktól induló könyvtárfában keres a megadott kifejezés balról jobbra való kiértékelésével. A program által figyelembe vett precedenicaszabályokat lásd az OPERÁTOROK fejezetetben. Mihelyt egyértelmû, hogy egy fájl megfelel-e a kifejezésnek, a következõ fájl vizsgálatába kezd. (Nem feltétlen értékeli ki tehát a teljes kifejezést. Pl. ha egy and kifejezés bal oldalán hamis, vagy egy or kifejezés bal oldalán igaz feltétel van, az egyértelmûvé teszi az egész kifejezés értékét. Ilyenkor a find nem vizsgálja tovább a kifejezést.)
Az elsõ argumentum, amely ‘-’, ‘(’, ‘)’, ‘,’, vagy ‘!’ jellel kezdõdik jelenti a kifejezés elejét. Az ez elõtti argumentumokat keresési útvonalaknak veszi a program, az ez utániakat a kifejezés további részeként. Ha nincs útvonal megadva, az aktuális könyvtárból indul a keresés. Ha pedig nincs kifejezés megadva, a ‘-print’ lesz használva.
A find kilépési állapota 0 ha minden fájlt sikeresen feldolgozott, nagyobb, mint 0, ha valami hiba történt.

KIFEJEZÉSEK

A kifejezés opciókból, tesztekbõl és akciókból áll, melyeket operátorok választanak el egymástól. Az opciók a teljes mûveletet befolyásolják, nemcsak egy fájlra vonatkoznak, és mindig igaz a visszatérési értékük. A tesztek igaz és hamis értéket egyaránt visszaadhatnak. Az akcióknak oldalhatásuk (side effect) van, és igaz vagy hamis értékkel is visszatérhetnek.
Az operátor elhagyható, ilyenkor az alapértelmezett -and kerül behelyettesítésre. Amennyiben a kifejezés a -prune -on kívül nem tartalmaz akciót, a -print lesz végrehajtva minden fájlra, melyre a kifejezés igaz.

OPCIÓK

Minden opció mindig igaz értéket ad vissza. Mindig hatnak, nemcsak akkor, amikor a feldolgozás eljut a helyükre. Ezért az áttekinthetõség kedvéért a kifejezés elejére célszerû tenni õket.
-daystart Az idõpontokat (-amin, -atime, -cmin, -ctime, -mmin, és -mtime esete) a mai nap kezdetétõl számítja, nem 24 órával ezelõttõl.
-depth A könyvtárak feldolgozása elõtt tartalmukat dolgozza fel.
-follow Nem a szimbolikus kötésekre hivatkozik, hanem az általuk mutatott fájlra. Bekapcsolja -noleaf-ot is.
-help, --help Egy összegzést ír ki a find használatáról, majd kilép.
-maxdepth levels Legfeljebb levels (ez egy nemnegatív szám) mélységben megy bele a könyvtárstruktúrába. ‘-maxdepth 0’ azt jelenti, hogy csak a parancssorban argumentumként megadott fájlokra kell a teszteket és az akciókat végrehajtani.
-mindepth levels A levels-ben adott nemnegatív egésznél kisebb mélységben nem alkalmaz egyetlen tesztet vagy akciót sem. ‘-mindepth 1’ azt jelenti, hogy a parancssori argumentumokat nem, csak az alattuk levõ könyvtárakat dolgozza fel.
-mount Nem megy bele olyan alkönyvtárba, amely más fájlrendszeren van. Ugyanaz, mint -xdev. (Csak kompatibilitási okokból került implementálásra.)
-noleaf Nem használja azt a feltevést, hogy a könyvtárak kettõvel kevesebb alkönyvtárat tartalmaznak, mint a kemény kötéseik száma. Erre olyankor van szükség, amikor a keresés olyan fájlrendszeren történik, amelyik nem követi a Unix könyvtárkonvencióit, mint pl. az MS-DOS vagy a CD-ROM-ok.
Unix alatt ugyanis minden könyvtárnak van két kemény kötése: a saját neve és a ‘.’ bejegyzés. Továbbá, minden alkönyvtárának van egy ‘..’ bejegyzése, amely rá vonatkozik. Ezért tehát a Unix-ban egy könyvtár kemény kötéseinek száma mindig kettõvel több alkönyvtárainak számánál. Ennek felhasználásával a keresés Unix rendszereken jelentõsen gyorsítható, mert a kemény kötések számánál kettõvel kevesebb alkönyvtár megvizsgálása után nem kell továbbiakat keresni, azaz nem kell egy csomó másik fájlt vizsgálni, hisz azok biztosan normális, azaz "levél" (leaf) fájlok. Ez a feltételezés természetesen nem igaz más rendszerekben, így ott find kihagyhatna alkönyvtárakat.
-version, --version Kiírja a verziószámot és kilép.
-xdev Nem megy bele olyan alkönyvtárba, amely más fájlrendszeren van.

TESZTEK

Numerikus argumentumok az alábbi módon adhatók meg:
+n nagyobb mint n,
-n kisebb mint n,
n pontosan n.
-amin n A fájl utoljára n perce lett használva.
-anewer file A fájl utolsó használata frissebb, mint a file módosítási dátuma. -anewer -t csak akkor befolyásolja a -follow, ha a -follow elõbb szerepel a parancssorban, mint -anewer.
-atime n A fájl utoljára n*24 órája lett használva.
-cmin n A fájl státusza n perce lett utoljára módosítva.
-cnewer file A fájl utolsó státuszmódosítása frissebb, mint a file módosítási dátuma. -cnewer -t csak akkor befolyásolja a -follow, ha a -follow elõbb szerepel a parancssorban, mint -cnewer.
-ctime n A fájl státusza utoljára n*24 órája lett módosítva.
-empty A fájl üres. (Szabályos fájlra és könyvtárra is vonatkozik.)
-false Mindig hamis
-fstype type A fájl type típusú fájlrendszeren van. Az érvényes fájlrendszer-típusok a Unix változataitól függenek. Egy nem teljes lista a Unix rendszerek alatt elõforduló fájlrendszerekrõl: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K. (Linux alatt a legjellemzõbbek: ext2, msdos, minix, iso9660, vfat.) A -printf a %F direktívával a fájlrendszer típusának megállapítására használható.
-gid n A fájl numerikus csoportazonosítója (group ID) n.
-group gname A fájl a gname csoporthoz tartozik. (Numerikus érték is megengedett.)
-ilname pattern Ugyanaz, mint -lname, csak nem tesz különbséget a kis- és nagybetûk között.
-iname pattern Ugyanaz, mint -name, csak nem tesz különbséget a kis- és nagybetûk között. Páldául a ‘fo*’ és ‘F??’ minták illeszkednek a ‘Foo’, ‘FOO’, ‘foo’, ‘fOo’ fájlnevekhez is.
-inum n A fájl inode száma n.
-ipath pattern Ugyanaz, mint -path, csak nem tesz különbséget a kis- és nagybetûk között.
-iregex pattern Ugyanaz, mint -regex, csak nem tesz különbséget a kis- és nagybetûk között.
-links n A fájlnak n kötése van.
-lname pattern A fájl egy szimbolikus kötés, melynek tartalma illeszkedik a pattern burokmintára. A metakarakterek nem kezelik a ‘/’-t és a ‘.’-t speciálisan.
-mmin n A fájl adatai utoljára n perce lettek módosítva.
-mtime n A fájl adatai utoljára n*24 órája lettek módosítva.
-name pattern A fájlnév alapja (azaz a fájl elérési útja a bevezetõ könyvtárak nélkül) illeszkedik a pattern burokmintához. A metakarakterek (‘*’, ‘?’ és ‘[]’) nem illeszkednek a fájl alapneve elején található ‘.’-hoz. Egy könyvtár és az alatta levõ fájlok figyelmen kívül hagyására a -prune használható. (Lásd a -path leírásánál levõ példát.)
-newer file A fájl frissebben lett módosítva, mint file. -newer -t csak akkor befolyásolja a -follow, ha a -follow elõbb szerepel a parancssorban, mint -newer.
-nouser Nincs a fájl numerikus felhasználói azonosítójának (user ID) megfelelõ felhasználó.
-nogroup Nincs a fájl numerikus csoportazonosítójának (group ID) megfelelõ csoport.
-path pattern A fájlnév illeszkedik a pattern burokmintához. A metakarakterek nem kezelik ‘/’-t és ‘.’-t speciálisan. Például:
find . -path ’./sr*sc’
kinyomtat egy bejegyzést a ’./src/misc’ könyvtárról, ha az létezik. Egy teljes könyvtárfa figyelmen kívül hagyásához a -prune használható a fa minden fájljának ellenõrzése helyett. Például a többi fájl nevének nyomtatása megvalósítható a következõ módon:
find . -path ’./src/emacs’ -prune -o -print
-perm mode A fájl engedélybitjei pontosan a mode -nak megfelelõek. A mode megadása lehet oktális vagy szimbolikus. Szimbolikus esetben a 0 mód a kiindulás.
-perm -mode A mode minden engedélybitje be van állítva a fájlra is.
-perm +mode A mode engedélybitjeinek valamelyike be van állítva a fájlra is.
-regex pattern A fájlnév illeszkedik a pattern szabályos kifejezéshez. Az illeszkedés a teljes elérési útra vonatkozik, nem a keresésre. Például egy ‘./fubar3’ fájlhoz való illeszkedésre használható a ‘.*bar.’ vagy ‘.*b.*3’ szabályos kifejezés, de a ‘b.*r3’ nem.
-size n[bckw] A fájl mérete n egységnyi. Az egység az 512-bájtos blokk alapértelmezésben vagy ‘b’ végzõdés esetén, bájt, ha a végzõdés ‘c’, kilobájt, ha a végzõdés ‘k’, 2-bájtos szó, ha a végzõdés ‘w’.
-true Mindig igaz.
-type c A fájl c típusú, ahol a lehetséges értékek:
b blokkos (pufferelt) speciális eszközfájl
c karakteres (nem pufferelt) speciális eszközfájl
d könyvtár
p csõhálózat (named pipe, FIFO)
f szabályos fájl
l szimbolikus kötés
s socket
-uid n A fájl numerikus felhasználói azonosítója (user ID) n.
-used n A fájl utoljára n nappal a státusza megváltoztatása után volt használatban.
-user uname A fájl a uname felhasználó tulajdonában van. (Numerikus érték is megengedett.)
-xtype c Ugyanaz, mint -type, hacsak nem a fájl szimbolikus kötés. Ebbean az esetben: ha -follow nem adott, akkor igaz az értéke amennyiben a fájl egy c típusú fájlra mutató link; amennyiben -follow is adott, igaz, ha c egyenlõ ‘l’-lel. Más szavakkal: szimbolikus kötés esetén -xtype annak a fájlnak a típusát vizsgálja, amit -type nem vizsgál.

AKCIÓK

-exec command ; Végrehajtja a command parancsot. Értéke igaz, ha a parancs 0 státuszt ad vissza. A következõ ‘;’-ig a find minden argumentumát a parancs argumentumának veszi. A ‘{}’ string az aktuálisan feldolgozás alatt álló fájl nevével helyettesítõdik. Ezen szerkezeteket esetlegesen meg kell védeni (a ‘\’ használatával) attól, hogy a burok kifejtese õket. A parancs végrehajtása a kiindulási könyvtárból történik.
-fls file Igaz; ugyanaz, mint -ls, csak a file-ba ír. (Az -fprint -hez hasonlóan.)
-fprint file Igaz. A teljes fájlnevet a file fájlba írja. Amennyiben a file nem létezik a find futtatásakor, a find létrehozza, ha pedig létezik, csonkolja. A ‘‘/dev/stdout’’ és ‘‘/dev/stderr’’ fájlenevket speciálisan kezeli: a szabványos kimenetre és szabványos bemenetre vonatkoznak.
-fprint0 file Igaz; ugyanaz, mint -print0, csak azfile fájlba ír. (Az -fprint -hez hasonlóan.)
-fprintf file format Igaz; ugyanaz, mint -printf, csak azfile fájlba ír. (Az -fprint -hez hasonlóan.)
-ok command ; Ugyanaz, mint -exec, de elõször megkérdezi a felhasználót a standard bemeneten. Amennyiben a válasz nem ‘y’-nal vagy ‘Y’-nal kezdõdik, nem futtatja a parancsot, és hamis értékkel tér vissza.
-print Igaz; a fájl teljes nevét, majd egy újsor-jelet a szabványos kimenetre írja.
-print0 Igaz; a fájl teljes nevét, majd egy null-karaktert a standard kimenetre írja. Ez megengedi, hogy újsor-jelet tartalmazó fájlnevek esetén a find kimenetét feldolgozó programok jól mûködjenek.
-printf format Igaz; a format által megadott formátumban nyomtat a a standard kimenetre. Értelmezi a ‘\’ és ‘%’ direktívákat. Mezõszélesség és pontosság a C-beli ‘printf’-fel megegyezõ módon adható meg. A -print-tõl eltérõen -printf nem ír ki automatikusan újsorjelet a kimenetre. A direktívák a következõk lehetnek:
\a Figyelmeztetõ csengõ (alarm bell).
\b Fordított törtvonal (backspace).
\c Ezen formátumból való nyomtatást megállítja és kiírja (flush) a kimenetet.
\f Soremelés (form feed).
\n Újsor (newline).
\r Kocsi vissza (carriage return).
\t Vízszintes tabulátor (horizontal tab).
\v Függõleges tabulátor (vertical tab).
\\ Betû szerinti fordított törtvonal (literal backslash, ‘\’).
Egy ‘\’, majed egy másik karakter rendes karakterként viselkedik, azaz mindegyik kinyomtatásra kerül.
%% Betû szerinti százalékjel.
%a A fálj utolsó elérési ideje a C ‘ctime’ függvényének formátumában.
%Ak A fálj utolsó elérési ideje a k által megadott formátumban. Ez lehet ‘@’, vagy egy direktíva a C ‘strftime’ függvényének megfelelõen. k lehetséges értékeit a következõkben megadjuk. Néhány közülük nem minden rendszeren elérhetõ a ‘strftime’ függvények rendszerfüggõsége miatt.
@ 1970. január 1. 00:00 GMT óta eltelt másodpercek.
Idõmezõk:
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 órás formátumban (hh:mm:ss [AP]M)
S másodperc (00..61)
T idõ 24 órás formátumban (hh:mm:ss)
X a ‘locale’-nak megfelelõ idõjelzés (H:M:S)
Z idõzóna (pl. EDT) vagy semmi, ha az idõzóna nem meghatározható
Dátum mezõk:
a a ‘locale’-nak megfelelõ rövidített napnév (pl. Sun..Sat)
A a ‘locale’-nak megfelelõ teljes napnév (pl. Sunday..Saturday)
b a ‘locale’-nak megfelelõ rövidített hónapnév (pl. Jan..Dec)
B a ‘locale’-nak megfelelõ teljes hónapnév (pl. January..December)
c a ‘locale’-nak megfelelõ dátum és idõ (pl. Sat Nov 04 12:02:33 EST 1989)
d a hónap napja (01..31)
D dátum (mm/dd/yy)
h ugyanaz, mint b
j az év napja (001..366)
m hónap (01..12)
U az év hányadik hetérõl van szó, ha vasárnappal kezdjük a heteket (00..53)
w a hét hányadik napja (0..6)
W az év hányadik hetérõl van szó, ha hétfõvel kezdjük a heteket (00..53)
x a ‘locale’-nak megfelelõ dátum (pl. mm/dd/yy)
y az év utolsó két jegye (00..99)
Y év (1970...)
%b A fájlméret 512 bájtos blokkokban (felkerekítve).
%c A fájl státuszának utolsó megváltoztatási ideje a C ‘ctime’ függvényének formátumában.
%Ck A fájl státuszának utolsó megváltoztatási ideje a k formátum által megadott módon (%A-hoz hasonlóan).
%d A fájl mélysége a könyvtárfában. A 0 azt jelenti, hogy a fájl parancssori argumentum volt.
%f A fájl neve a bevezetõ könyvtárnevek nélkül.
%F A fájlrendszer neve. Ez az érték használható az -fstype-nál.
%g A fájl csoportneve vagy a numerikus csoportazonosító, ha nincs neve a csoportnak.
%G A fájl numerikus csoportazonosítója.
%h A teljes fájnév bevezetõ könyvtárnevei.
%H Azon parancssori argumentumok, melyek alatt nem talált fájlt a find.
%i A fájl inode száma decimálisan.
%k A fájl mérete 1K blokkokban (felkerekítve).
%l A szimbolikus kötés célja. (Üres, ha a fájl nem szimbolikus kötés.)
%m A fájl engedélybitjei oktálisan.
%n A fájl kemény kötéseinek száma.
%p A fájl (teljes) neve.
%P A fájl neve azon parancssori argumentum nélkül, amely alatt megtalálta a find.
%s A fájl mérete bájtokban.
%t A fájl utolsó módosítási ideje a C ‘ctime’ függvényének formátumában.
%Tk A fájl utolsó módosítási ideje a k által megadott formában. (Lásd %A-nál.)
%u A fájl tulajdonosának neve, vagy numerikus felhasználói azonosítója, ha nincs neve a felhasználónak.
%U A fájl tulajdonosának numerikus felhasználói azonosítója.
A ‘%’ jel után álló bármely más karakter esetén csak a megadott karakter íródik ki.
-prune Ha nincs -depth megadva, akkor igaz. Nem megy bele az aktuális könyvtárba.
Ha -depth adott, akkor hamis és nincs hatása.
-ls Igaz. listázza az aktuális fájlt ‘ls -dils’ formában a standard kimenetre. A blokkméret 1K, hacsak nem a POSIXLY_CORRECT környezeti változónak értéket adtunk. Ekkor 512 bájtos blokkmérettel számol.

OPERÁTOROK

Az operátorokat csökkenõ precedenciasorrendben listázzuk:
( expr ) Precedencia változtatás.
! expr Igaz, ha az expr kifejezés hamis.
-not expr Ugyanaz, mint ! expr.
expr1 expr2 Logikai és. Nem értékeli 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 értékeli ki, ha expr1 igaz.
expr1 -or expr2 Ugyanaz, mint expr1 -o expr2.
expr1 , expr2 Listáz. expr1 és expr2 is mindig kiértékelésre kerül. expr1 értéke nem számít, a lista expr2 értékét adja vissza.

LÁSD MÉG

locate(1), locatedb(5), updatedb(1), xargs(1) Finding Files (Info fájl, vagy nyomtatott változat)

MAGYAR FORDÍTÁS

Horváth András <>
⇧ Top