Provided by:
manpages-hu_20010119-5_all 
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>