Provided by: manpages-hu_20010119-5_all bug

NÉV

       file - fájl típusának meghatározása

ÁTTEKINTÉS

       file [ -vczL ] [ -f fájlnévlista ] [ -m bűvösfájl ] fájlnév ...

LEÍRÁS

       Ez  a  kézikönyv  oldal  a  file parancs 3.20.1-es verzióját dokumentálja.  A file parancs
       teszteli minden argumentumát és megpróbálja kategorizálni ezeket.  Három  teszt  sorozatot
       hajt végre, a következő sorrendben: fájlrendzer tesztek, bűvösszám (magic number) tesztek,
       és nyelv tesztek.  Az első sikeres teszt eredménye határozza meg a program kimenetét.

       A kiírt eredmény általában a következő szavak egyikét fogja tartalmazni: text (a fájl csak
       ASCII  karaktereket  tartalmaz, és valószínüleg olvasható ASCII terminálon), executable (a
       fájl program  fordítás  eredményét  tartalmazza,  mely  értelmes  valamilyen  UNIX  kernel
       számára)  vagy  data, ami bármi mást jelenthet (a data típus általában `bináris' vagy nem-
       nyomtatható).  Kivételt képeznek a jól ismert bináris fájl formátumok  (pl.  core  fájlok,
       tar  arhívumok).   Ha  változtatsz  a /etc/magic fájlon vagy magán a programon, tartsd meg
       ezeket a kulcsszavakat .  A felhasználók számítanak arra,  hogy  ha  egy  fájl  olvasható,
       akkor  a  típusában  megjelenik  a  ``text''  karakterlánc.   Ne  tedd azt, amit a Berkley
       Egyetemen tettek - megváltoztttak a ``shell commands text''-et ``shell script''-re.

       A fájlrendszer tesztek eredménye a stat(2) renszerhíváson alapul.  A program megnézi, hogy
       a  kérdéses  fájl  üres-e  vagy  esetleg valamilyen speciális fájl-e.  Minden az operációs
       rendszer által ismert fájltípust felismer (socket-eket, szimbolikus kötéseket vagy  "named
       pipe"-okat  (FIFOkat),  már ha a rendszerünk implementálja ezeket), ha az definiálva van a
       sys/stat.h rendszer fejléc fájlban.

       A bűvösszám tesztekkel a program adott  állandó  formátumú  fájlokat  próbál  azonosítani.
       Erre  a  legkézenfekvőbb  példa  egy  végrehajtható  bináris  (lefordított  program) a.out
       állomány,  aminek  a  formátumát  az  a.out.h  tartalmazza,  és  esetleg  az   exec.h   az
       alapértelmezett  "include"  könyvtárban.  Ezek a fájlok tartalmaznak egy bűvös számot, egy
       adott helyen, valahol a fájl eleje táján, ami megmondja a UNIX operációs rendszernek, hogy
       egy  bináris  futtatható  programról  van szó, valamint hogy pontosan melyik fajtáról ezek
       közül.  A `bűvös szám' elvét kiterjesztették más (bináris)  adatokat  tartalmazó  fájlokra
       is.  Általában bármilyen fájlt azonosíthatunk ezzel a módszerrel, ha tartalmaz egy állandó
       azonosítót egy meghatározott (a fájl elejéhez közel  lévő)  helyen.   Az  ehhez  szükséges
       adatokat a program a /etc/magic fájlból olvassa.

       Ha   az  egyik  tesztelt  fájl  ASCII  szövegnek  tűnik,  a  file  megpróbálja  a  nyelvét
       megállapítani.  A nyelv tesztek különleges, a nyelvekre jellemző karakterláncokra keresnek
       (lásd  names.h)  a  fájl  első  néhány  blokkjában.   Például  a  .br  kulcsszó arra enged
       következtetni, hogy valószínüleg egy troff(1) bemeneti  fájlról  van  szó,  míg  a  struct
       kulcsszó  C  program forrásra utal.  Ezek a tesztek kevésbé megbízhatóak mint az előző két
       csoportban ismertetettek, ezért ezeket próbálja ki a  file  utoljára.   A  nyelvi  tesztek
       egyébb   ellenőrzéseket   is   végeznek  (mint  pl.   tar(1)  archívumok  azonosítása)  és
       megállapítják, hogy egy ismeretlen típusú fájl `ascii text' vagy `data' leírást kapjon-e.

OPCIÓK

       -v, --version
              Kiírja a program verzióját és kilép.

       -m, --magic-file lista
              Másik bűvös számokat tartalmazó fájl/fájlok megadása.   Több  fájl  esetén  a  fájl
              neveket kettős ponttal kell elválasztani.

       -z, --uncompress
              Megpróbál tömörített fájlokat is azonosítani.

       -c, --checking-printout
              Ellenőrző nyomtatás a bűvös számokat tartalmazó fájlról. Általában a -m kapcsolóval
              együtt  használatos,  új  bűvös   számokat   tartalmazó   fájl   telepítés   előtti
              ellenőrzésekor.

       -f, --files-from fájlnévlista
              A  megvizsgálandó  fájlok  nevét a fájlnévlista nevű fájlból olvassa (soronként egy
              fájlnév), majd az argumentum listából.   Vagy  a  fájlnévlista  vagy  legalább  egy
              fájlnév  argumentumnak jelen kell lennie. A szabványos bemenet olvasásához használd
              a ``-'' jelet a fájlnév argumentum helyén.

       -L, --dereference
               Ezzel a kapcsolóval elérhetjük, hogy  a  file  kövesse  a  szimbólikus  kötéseket,
               ahogyan  azt  az  ls(1)  azonos nevű kapcsolója is teszi.  (azokon a rendszereken,
               amelyek támogatják a szimbólikus kötéseket).

FÁJLOK

       /etc/magic - bűvös számok alapértelmezett listája.

KÖRNYEZET

       A MAGIC környezeti változóval állíthatjuk be az alapértelmezett bűvös számokat  tartalmazó
       fájlt.

LÁSD MÉG

       magic(5) - bűvös fájl formátumának leírása.
       strings(1), od(1) - nem szöveg fájlok elemzésere használt eszközök.

IGAZODÁS A SZABVÁNYHOZ

       Ez  a  program  az  általános  nézet szerint felülmúlja a FILE(CMD)-ben szereplő "System V
       Interface Definition"-t, már amennyire ezt  abból  meg  lehet  határozni.   A  viselkedése
       többnyire  kompatíbilis  az  azonos nevű System V programéval.  Ez a verzió "jobb bűvész",
       tehát más (értsd pontosabb) eredménnyel szolgál sok esetben.

       Egy fontos eltérés van ezen verzió és a System V verziója között. Ez  a  verzió  bármilyen
       szóközt (white space) határoló karakterként értelmez, tehát a karakterláncokban előforduló
       szóközöket ki kell védeni.  Például a
       >10  string    language impress    (imPRESS data)
       sort egy már létező bűvös fájlban a következőre kellene lecserélni:
       >10  string    language\ impress   (imPRESS data)
       Továbbá, ebben a változatban, ha egy minta "backslash" karaktert tartalmaz,  azt  ki  kell
       védeni. Például
       0    string         \begindata     Andrew Toolkit document
       sort egy már létező bűvös fájlban a következőre kellene cserélni:
       0    string         \\begindata    Andrew Toolkit document

       A Sun Microsystems által készített SunOS 3.2-es és az azt követő kiadásai tartalmaznak egy
       file(1) parancsot, amely a System V parancs egy kibővített változata.  Az én programom  és
       a  Sun  változata  között  csak  minimális  az eltérés.  Ebbe beletartozik az `&' operátor
       használata, mint például a következő esetben:
       >16  long&0x7fffffff     >0        not stripped

BŰVÖS SZÁMOK GYŰJTEMÉNYE

       A bűvös számokat kőlönböző forrásokból gyűjtöttem össze, főleg  USENET-ről,  és  különböző
       szerzőktől  származnak.  Christos Zoulas (címét lasd lent) gyűjti a további, vagy javított
       bűvös  fájl  bejegyzéseket.   Rendszeresen  frissítjük  és  közzé  tesszük  a  bűvös  fájl
       bejegyzésit.

       A  bejegyzések  sorrendje  a  bűvös  fájlban  fontos,  és  változhat  az operációs renszer
       függvényében. Így egy régebbi file programhoz  tartozó  bűvös  fájlt  érdemes  megtartani,
       összehasonlítási alapnak.  (nevezd át pl.  /etc/magic.orig-ra).

TÖRTÉNET

       Minden  UNIX  tartalmazza  a  file parancsot, legalábbis a Research Version 6 óta biztosan
       (kézikönyv oldal kelte: 1975. január).   A  System  V  változata  egy  lényeges  változást
       vonzott  magával:  a bűvös számok külső fájlban való tárolását.  Ez egy kicsit lassított a
       programon, de sokkal rugalmasabbá tette.

       Ezt a programot a System V változat alapján Ian Darwin készítette, a nélkül, hogy bárkinek
       a forráskódját látta volna.

       John  Gilmore  tüzetesen  átnézte  a  kódot, és javított rajta az első változathoz képest.
       Geoff Collyer talált benne több pontatlanságot,  és  néhány  bejegyzéssel  gyarapította  a
       bűvös fájlt.  A program azóta is folyamatos fejlesztés alatt áll.

SZERZŐK

       Írta  Ian  F. Darwin, UUCP címe {utzoo | ihnp4}!darwin!ian, e-mail címe ian@sq.com, postai
       címe: P.O. Box 603, Station F, Toronto, Ontario, CANADA M4Y 2L8.

       Változtatott rajta  Rob  McMahon,  cudcv@warwick.ac.uk,  1989-ben.  Kiterjesztette  a  `&'
       operátor használatát az egyszerű `x&y != 0'-rol `x&y op z'-ra.

       További változtatásokat csinált Guy Harris, guy@auspex.com, 1993-ban:

              visszaállította  a  ``régi  fajta''  `&' operátort mert 1) Rob McMahon változtatása
              eltért a megszokott haszálattól, 2) a SunOS ``új fajta'' `&' operátora, amelyet  ez
              a file verzió is támogat, szintén kezeli a `x&y op z' műveletet és 3) egyébkent is,
              Rob változtatása nem volt dokumentálva;

              beépített több `>' szintet;

              beépítette a ``beshort'', ``leshort'',  stb.  kulcsszavakat,  hogy  a  program  egy
              meghatározott  byte  sorrendben  olvassa  a számokat a fájlból és ez a sorrend ne a
              file-t futtató processz eredendő bájt sorrendjétől függjön.

       További változtatások Ian Darwin valamint különböző más szerzők által, beleértve  Christos
       Zoulas-t (christos@ee.cornell.edu), 1990-1992-ben.

MÁSOLÁSI JOGOK

       Copyright  (c)  Ian  F. Darwin, Toronto, Canada, 1986, 1987, 1988, 1989, 1990, 1991, 1992,
       1993.

       Ezért a programért nem kérhetnek licensz díjat sem most, sem a jövőben a következő  cégek:
       az  American Telephone and Telegraph Company, a Sun Microsystems Inc., a Digital Equipment
       Inc., a Lotus Development Inc., a Kaliforniai Egyetem Vezetősége, az X Consortium vagy  az
       MIT, és a Free Software Foundation.

       Erre a szoftverre nem vonatkoznak az Egyesült Államok Kereskedelmi Minisztériumának export
       tilalmai, így szabadon exportálható bármelyik országba, vagy bármelyik bolygóra.

       Bárki  használhatja   bármilyen   célra,   bármilyen   számítógépen   ezt   a   szoftvert,
       megváltoztathatja és továbbadhatja szabadon a következő korlátozásokkal:

       1.  A  szerző  nem  felelős a szoftver használatának következményeiért, bármilyen súlyosak
       legyenek is, akkor sem ha a programban lévő hibából erednek.

       2. E szoftver eredetét nem szabad hamisan feltüntetni, sem kifejezett állítással,  sem  az
       eredeti  szerzők személyének elhallgatásával.  Mivel nagyon kevés felhasználó olvas forrás
       kódot, a dokumentációnak tartalmaznia kell a szerzők adatait.

       3. Megváltoztatott verziókra világosan fel kell hívni a figyelmet, és nem szabad  őket  az
       eredeti  szoftverrel  azonosként feltüntetni.  Mivel nagyon kevés felhasználó olvas forrás
       kódot, a dokumentációnak tartalmaznia kell a szerzők adatait.

       4. Ezt a közleményt nem szabad eltávolítani, vagy megváltoztatni.

       Néhany ezzel a csomaggal osztott szükséges fájlt
        (getopt, strtok) Henry Spencer írt, és a fenti szabályozások vonatkoznak rájuk.

       Néhany egyébb fájl  (strtol,  strchr)  szintén  ebből  a  csomagból  "public  domain"  alá
       tartozik.

       A  tar.h  és  is_tar.c  fájlokat John Gilmore írta a saját "public-domain" alá tartozó tar
       programja alapján, így ezekre nem vonatkoznak a fenti korlátozások.

HIBÁK

       Kell legyen egy jobb módja a bűvös fájl automatikus előállításának. Hogy  hogyan?  Sőt,  a
       bűvös  fájlt le lehetne fordítani valamilyen bináris formátumba (mondjuk pl.  ndbm(3) vagy
       , még jobb, állandó hosszúságú ASCII karakterláncok  formájaba,  hogy  heterogén  hálózati
       környezetben  is  lehessen használni) a program gyorsabb indulása végett.  Ekkor a program
       olyan gyorsan futna mint a Version 7-es változat és mégis megőrízné a  System  V  változat
       rugalmasságát.

       A  file  több  olyan  algoritmust  használ,  amik  elönyben  részesítik  a  gyorsaságot  a
       pontossággal szemben, ezért a program eredménye néha pontatlan ASCII fájlok esetében.

       Az ASCII fájlok támogatottsága (főleg programozási nyelvek  esetén)  nagyon  fapados,  nem
       hatékony, és változtatás esetén újrafordítást igényel.

       Implementálni kellene az ``else'' ágakat.

       A bűvös fájlnak és a kulcsszavaknak támogatniuk kellene a szabályos kifejezéseket (regular
       expressions). Az ASCII TAB használata mezők  elválasztásnál  csúnya,  és  nehéz  miatta  a
       fájlok szerkesztése.

       Lehet,  hogy  tanácsos  lenne  a  nagy betűk engedélyezése a kulcsszavakban, pl.  troff(1)
       parancsok  a  kézikönyv  oldal  makrók  helyett.   Szabályos  kifejezések  használata  ezt
       egyszerűvé tenné.

       A  program nem ismeri fel a FORTRAN fájlokat.  Felismerhetné őket néhány kulcsszó alapján,
       amelyek a sor elején fordulnak elő.  Szabályos kifejezések használata  ezt  is  egyszerűvé
       tenné.

       Az  ascmagic  fájlban  található  kulcsszavak  listája  valószínűleg inkább a bűvös fájlba
       tartozik.  Ezt meg lehetne csinálni pl. egy `*' kulcsszóval az offset érték helyén.

       Még egy optimalizálási lehetőség lenne a bűvös fájl rendezése. Így lefuttathatnánk  minden
       tesztet  az  első bájtra, az első szóra, az első longra stb. amint azt egyszer beolvastuk.
       Panaszkodhatna a program ha összeférhetetlen bejegyzéseket talál a bűvös fájlban.  A bűvös
       fájl bejegyzéseit a fájl offset szerint kellene rendezni?

       A  programnak  valahogy  meg  kellene  mondania,  hogy ``mennyire jó'' az eredmény.  Végül
       figyelmen kívül hagyna bizonyos találgatásokat (pl. ``From:'' a  fájl  első  5  karaktere)
       mert  nem  olyan biztosak mint más találgatások (pl.  ``Newsgroup:'' a ``Return-Path:''-al
       szemben.) Amennyiben a többi próba nem jön be, az első (kevésbé  biztos)  találat  alapján
       meg lehet mondani milyen fájlról van szó.

       Ez a program lassabb mint a mások által forgalmazott file programok.

       Ez a kézikönyv oldal, főleg ez a része, túl hosszú.

ELÉRHTŐSÉG

       A      eredeti     program     legfrissebb     változata     elérhető     a     szerzőnél:
       ftp://tesla.ee.cornell.edu/pub/file/ , de ez lehet, hogy nem működik.   Megpróbálhatod  az
       ftp://ftp.deshaw.com/pub/file/        -t        vagy       legvégső       esetben       az
       ftp://ftp.uu.net/pub/FreeBSD/FreeBSD-current/src/usr.bin/file/-t.

       Ez a Debian változat megérti a hosszú kapcsolókat, és néhany hibával kevesebb  van  benne.
       Elérhető minden Debian disztibúciót tartalmazó helyről (ftp.debian.org/mirrors).

MAGYAR FORDÍTÁS

       Kovács Emese <emese@eik.bme.hu>