Provided by: manpages-hu_20010119-5_all bug

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 <horvatha@rs1.szif.hu>

                                                                                          FIND(1)