Provided by: manpages-hu_20010119-6_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>

Debian/GNU Linux                                1997. március 11.                                        FILE(1)