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 fjlnvlista
              A  megvizsgálandó  fájlok  nevét  a  fjlnvlista  nevű  fájlból
              olvassa  (soronként  egy  fájlnév), majd az argumentum listából.
              Vagy a fjlnvlista  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>