Maybaygiare.org

Blog Network

fájl(1) – Linux man oldal

név

fájl – határozza meg a fájltípust

szinopszis

fájlfájl …

file-C

file

leírás

Ez a man oldal a file parancs 5.04-es verzióját dokumentálja.a

fájl minden argumentumot tesztel, hogy megpróbálja osztályozni. Három tesztkészlet van, ebben a sorrendben: fájlrendszer tesztek, mágikus tesztek ésnyelvi tesztek. Az első sikeres teszt a Fájltípus kinyomtatását eredményezi.

a kinyomtatott típus általában a szöveg szavak egyikét tartalmazza (a fájl csak nyomtatási karaktereket és néhány általános vezérlő karaktert tartalmaz, és valószínűleg biztonságos olvasni egy ASCII terminálon), végrehajtható (a fájl EGY program fordításának eredményét tartalmazza valamilyen UNIXkernel vagy más számára érthető formában), vagy az adatok bármi mást jelentenek (az adatok általában ‘bináris’ vagy nem nyomtatható). Kivételt képeznek a jól ismert fájlformátumok (alapfájlok, tararchívumok), amelyekről ismert, hogy bináris adatokat tartalmaznak. A magic fájlok vagy maga a program módosításakor ügyeljen arra, hogy megőrizze ezeket a kulcsszavakat. A felhasználók függenektudva, hogy a könyvtárban található összes olvasható fájl nyomtatva van a ‘szöveg’ szóval. Ne tegye úgy, ahogy Berkeley tette, és változtassa meg a ‘shell parancsok szövegét’ shell parancsfájlra.

a fájlrendszer tesztek a stat(2) rendszerhívás visszatérésének vizsgálatán alapulnak. A program ellenőrzi, hogy a fájl üres-e, vagy valamiféle.speciális fájl. Bármely ismert fájltípus, amely megfelel a futó rendszernek (aljzatok, szimbolikus linkek vagy megnevezett csövek (FIFOs) azokon a rendszereken, amelyek végrehajtják őket) intuitív, ha a rendszer fejlécfájljában vannak meghatározva

a mágikus teszteket arra használják, hogy ellenőrizzék az adatokat tartalmazó fájlokat, különösen rögzített formátumokban. Ennek kanonikus példája egy bináris futtatható (lefordított program)a.out fájl, amelynek formátuma A #include <A.out.h>
és esetleg #include < exec.h>
a standard include könyvtárban. Ezeknek a fájloknak van egy ‘mágikus száma’, amelyet a fájl eleje közelében egy adott helyen tárolnak, amely megmondja a UNIX operatingsystemnek, hogy a fájl bináris futtatható, és melyik típus közül melyik. A ‘mágia’ fogalmát kiterjesztéssel alkalmazták az adatfájlokra. Bármely fájl, amelynek invariáns azonosítója van egy kis rögzített eltolással a fájlba, általában így írható le. Az ezeket a fájlokat azonosító információk olvashatóka lefordított mágikus fájl / usr/share/misc / magic.mgc, vagy a /usr/share/misc/magic könyvtárban található fájlok, ha a lefordított fájl nem létezik. Ráadásul, ha $otthon/.varázslat.mgc vagy $otthon/.magic létezik, akkor kell használni, inkább a rendszer mágikus fájlokat. Ha az/etc / magic létezik, akkor azmás mágikus fájlokkal együtt fogják használni.

Ha egy fájl nem egyezik a mágikus fájl egyik bejegyzésével sem, akkor megvizsgálja, hogy szöveges fájlnak tűnik-e. ASCII, ISO-8859-x, nem ISO 8-bitextended-ASCII karakterkészletek (mint például a Macintosh és IBM PC rendszereken használt), UTF-8 kódolású Unicode, UTF-16 kódolású Unicode és EBCDIC karakterkészletekmegkülönböztethetők az egyes készletekben nyomtatható szöveget alkotó bájtok különböző tartományai és szekvenciái alapján. Ha egy fájl átmegy ezen tesztek bármelyikén, akkor azkarakter készlet jelenik meg. Az ASCII, az ISO-8859-x, az UTF-8 és az extended-ASCII fájlokat ‘szövegként’ azonosítják, mivel ezek többnyire szinte bármilyen terminálon olvashatóak lesznek; Az UTF-16 és az EBCDIC csak ‘karakteradatok’, mert bár szöveget tartalmaznak, az olvasás előtt fordítást igényel. Ezenkívül a fájl megpróbálja meghatározni a szöveges fájlok egyéb jellemzőit. Ha egy fájl sorait CR, CRLF vagy NEL fejezi be, a Unix-szabvány helyett LF, ezt jelenteni kell. A beágyazott menekülési szekvenciákat vagy túlterhelést tartalmazó fájlok szintén azonosíthatók.

miután a fájl meghatározta a szöveges fájlban használt karakterkészletet, megpróbálja meghatározni, hogy a fájl milyen nyelven íródott. A nyelvtesztek bizonyos húrokat keresnek(vö. # include <nevek.h>
), amely bárhol megjelenhet a fájl első néhány blokkjában. Például a .br kulcsszó azt jelzi,hogy a fájl valószínűleg egy troff(1) bemeneti fájl, csakúgy, mint a Struct kulcsszó egy C programot jelez. Ezek a tesztek kevésbé megbízhatóak, mint az előző két csoport, ezért utoljára hajtják végre őket. A languagetest rutinok is teszt néhány egyéb (mint például a tar(1) archívumok).

minden olyan fájl, amely nem azonosítható a fent felsorolt karakterkészletek egyikében sem, egyszerűen azt mondják, hogy ‘adat’.

Options

 -b, --brief

ne írjon elő fájlneveket a kimeneti vonalakra (rövid mód).

– C, — fordítsd
írj egy varázslatot.MGC kimeneti fájl, amely a magic fájl vagy könyvtár előre elemzett verzióját tartalmazza.

-c, –checking-printout
a mágikus fájl elemzett formájának ellenőrzése. Ezt általában az-m jelzővel együtt használják egy új mágikus fájl hibakereséséhez, mielőtt telepítené.

– e, –exclude testname
zárja ki a testname-ben megnevezett tesztet a Fájltípus meghatározásához végzett tesztek listájából. Érvényes teszt nevek:

apptype
EMX alkalmazás típusa (csak EMX-en).

text’ különböző típusú szövegfájlok (ez a teszt megpróbálja kitalálni a szövegkódolást, függetlenül a ‘kódolás’ opció beállításától).

kódolás
különböző szöveges kódolások lágy mágikus tesztek.

tokenek’ ismert tokeneket keres a szöveges fájlokban.

cdf’ összetett Dokumentumfájlok részleteit nyomtatja ki.

compress
ellenőrzi a tömörített fájlokat, és belenéz.

elf ‘ kiírja az ELF fájl részleteit.

soft ‘ konzultál a mágikus fájlokkal.

tar ‘ megvizsgálja a tar fájlokat.

-F, — separator separator
használja a megadott karakterláncot elválasztóként a fájlnév és a visszaadott fájl eredménye között. Alapértelmezés szerint’:’.

-f, –files-from namefile
olvassa el a vizsgálandó fájlok nevét a namefile-ből (soronként egy) az argumentumlista előtt. Vagy névfájlnak, vagy legalább egy filenameargument-nek jelen kell lennie; a szabványos bemenet teszteléséhez használja a ‘ – ‘ fájlt fájlnév argumentumként.

-h, –no-dereference
opció miatt a szimbolikus linkeket nem kell követni (a szimbolikus linkeket támogató rendszereken). Ez az alapértelmezett, ha a POSIXLY_CORRECT környezeti változó nem definiált.a

-i, –mime
hatására a fájl parancs mime típusú karakterláncokat ad ki, nem pedig a hagyományosabb, ember által olvasható karakterláncokat. Így azt mondhatja, hogy ‘text/plain; charset=us-ascii’ inkább, mint ‘ASCII text’. Annak érdekében, hogy ez az opció működjön, a file megváltoztatja a parancs által felismert fájlok kezelésének módját (például számos szöveges fájltípust, könyvtárat stb.), és egy alternatív ‘magic’ fájlt használ. (Lásd alább a fájlok részt).

–mime-típus, –mime-kódolás
Like-i, de csak a megadott elem(ek) et nyomtassa ki.a

-L, –dereference
opció a szimbolikus linkeket követi, mint a hasonló nevű opciót az ls(1) – ben (a szimbolikus linkeket támogató rendszereken). Ez az alapértelmezett, ha az environmentvariable POSIXLY_CORRECT definiálva van.

-m, — magic-file magicfiles
adja meg a magic-et tartalmazó fájlok és könyvtárak alternatív listáját. Ez lehet egyetlen elem, vagy kettősponttal elválasztott lista. Ha egy lefordított mágikus fájl találhatóegy fájl vagy könyvtár mellett, akkor azt fogják használni.

-N, — no-pad
ne írja be a fájlneveket úgy, hogy azok igazodjanak a kimenethez.

-n, — no-buffer
Minden fájl ellenőrzése után ki kell öblíteni az stdout-ot. Ez csak akkor hasznos, ha ellenőrzi a fájlok listáját. Ezt olyan programok használják, amelyek filetypeoutput-ot akarnak egy csőből.

-p, –preserve-date
az utime(2) vagy utimes(2) rendszert támogató rendszereken próbálja megőrizni az elemzett fájlok hozzáférési idejét, hogy úgy tegyen, mintha a fájl soha nem olvasná őket.

-r, — raw
ne fordítson le nem nyomtatható karaktereket \ooo-ra. Általában a fájl lefordítja a nyomtathatatlan karaktereket oktális ábrázolásukra.

-s, –special-files
általában a file csak az argumentumfájlok típusát próbálja meg olvasni és meghatározni, amelyek a stat(2) jelentések rendes fájlok. Ez megakadályozza a problémákat, merta speciális fájlok olvasása sajátos következményekkel járhat. A-S opció megadásával a fájl olyan argumentumfájlokat is olvas, amelyek blokk vagy karakter speciális fájlok. Ez hasznos a nyers lemezpartíciók fájlrendszer-típusainak meghatározásához, amelyek blokk speciális fájlok. Ez az opció azt is okozza, hogy a fájl figyelmen kívül hagyja a stat(2) által jelentett fájlméretet, mivel egyes rendszereken nulla méretet jelent a nyers lemezpartíciók számára.

-v, –version
nyomtassa ki a program verzióját, majd lépjen ki.

-z, — uncompress
próbálj meg belenézni a tömörített fájlokba.

–help
nyomtasson ki egy súgóüzenetet, majd lépjen ki.

Files

/usr/share/misc/magic.mgc

A mágia alapértelmezett összeállított listája.
/usr/share/misc / magic’ alapértelmezett mágikus fájlokat tartalmazó könyvtár.

környezet

A MAGIC környezeti változó használható az alapértelmezett magic fájlnév beállítására. Ha ez a változó be van állítva, akkor a file nem próbálja meg megnyitni a$HOME/fájlt.varázslat. fájl hozzáteszi ‘.mgc ‘ ennek a változónak az értékére. A POSIXLY_CORRECT környezeti változó vezérli (a szimbolikus linkeket támogató rendszereken), függetlenül attól, hogy a fájl megpróbálja-e követni a szimbolikus linkeket, vagy sem. Ha be van állítva, akkor a fájl követi a symlink – et, különben nem. Ezt az-L és-h opciók is szabályozzák.

Lásd még:

magic(5), strings(1), od(1), hexdump(1,) file(1posix)

szabványok megfelelősége

Ez a program vélhetően meghaladja a System V Interface definícióját fájl (CMD), amilyen közel lehet meghatározni a benne található homályos nyelvből.Viselkedése többnyire kompatibilis az azonos nevű System V programmal. Ez a verzió azonban több varázslatot ismer, így sok esetben más (bár pontosabb) kimenetet fog eredményezni.

az egyetlen jelentős különbség a verzió és a System V között az, hogy ez a verzió minden fehér teret határolóként kezel, így a patternstrings szóközeit el kell kerülni. Például

>10 string language impress (imPRESS data)

egy meglévő mágikus fájlban meg kell változtatni

>10 string language\ impress (imPRESS data)

ezenkívül ebben a verzióban, ha EGY MINTA karakterlánc tartalmaz egy fordított perjelet, akkor el kell kerülni. Például

0 string \begindata Andrew Toolkit document

egy meglévő mágikus fájlt kell változtatni

0 string \\begindata Andrew Toolkit document

SunOS releases 3.2 és később a Sun Microsystems tartalmaz egy fájl parancsot, amely a System V one-ból származik, de néhány kiterjesztéssel. Az én verzióm csak kisebb mértékben különbözik a Sun-tól. Ez magában foglalja a ‘&’ operátor kiterjesztését, amelyet például

>16 long&0x7fffffff >0 not stripped

Magic Directory

a magic fájl bejegyzéseket különböző forrásokból gyűjtötték, főleg USENET, és különböző szerzők közreműködtek. Christos Zoulas (az alábbi cím) további vagy javított mágikus fájlbejegyzéseket gyűjt. A magic file bejegyzések konszolidációját rendszeresen terjesztik.

a mágikus fájl bejegyzéseinek sorrendje jelentős. Attól függően, hogy milyen rendszert használ, az összeállítás sorrendje helytelen lehet. Ha a régi fájl parancs mágikus fájlt használ, tartsa a régi mágikus fájlt összehasonlítás céljából (nevezze át /usr/share/misc/magic névre.orig).

példák

$ file file.c file /dev/{wd0a,hda}file.c: C program textfile: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),

dinamikusan kapcsolt (megosztott lib-ket használ), megfosztva

/ dev / wd0a: blokk speciális (0/0)
/ dev / hda: blokk speciális (3/0)

$ file-s / dev / wd0{b, d}
/ dev / wd0b: adatok
/ dev / wd0d: x86 rendszerindító szektor

előzmények

legalább a 4.kutatási verzió óta minden Unix-ban van egy fájlparancs (man oldal 1973 novemberében kelt). A System V verzió bevezette az egyiketjelentős jelentős változás: a mágikus típusok külső listája. Ez kissé lelassította a programot, de sokkal rugalmasabbá tette.

Ez a program alapján a System V verzió, írta Ian Darwin <[email protected]> anélkül, hogy bárki más forráskódját megnézné.

John Gilmore alaposan átdolgozta a kódot, így jobb volt, mint az első verzió. Geoff Collyer talált néhány hiányosságot, és biztosított néhány mágikus fileentries. Hozzájárulások a’ & ‘ operátor által Rob McMahon, [email protected], 1989.

Guy Harris, [email protected], sok változtatást hajtott végre 1993-tól napjainkig.

elsődleges fejlesztés és karbantartás 1990-től napjainkig Christos Zoulas ([email protected]).

megváltoztatta Chris Lowth, [email protected], 2000: Kezelje a-i opciót a mime típusú karakterláncok kimenetéhez, alternatív mágikus fájl és belső logika segítségével.

módosította Eric Fischer ([email protected]), 2000 júliusában, hogy azonosítsa a karakterkódokat és megpróbálja azonosítani a nem ASCII fájlok nyelveit.

megváltoztatta Reuben Thomas ([email protected]), 2007-től 2008-ig, a MIME támogatás javítása és a MIME és a nem MIME magic egyesítése, a könyvtárak, valamint a Magic fájlok támogatása, számos hibajavítás alkalmazása és a build rendszer javítása érdekében.

a ‘magic’ könyvtár (magic files) közreműködőinek listája túl hosszú ahhoz, hogy ide belefoglaljuk. Tudod, ki vagy; köszönöm. Sok közreműködő van felsorolvaa forrásfájlokban.

jogi nyilatkozat

Copyright ^ Ian F. Darwin, Toronto, Kanada, 1986-1999. A szokásos Berkeley szoftverterjesztési szerzői jog hatálya alá tartozik; lásd a jogi fájlt.Megjegyzés a forráselosztásban.

a fájlok tar.h és is_tar.c írta John Gilmore az ő public-domain tar(1) program, és nem vonatkozik a fenti licenc.

Bugs

kell lennie egy jobb módja annak, hogy automatizálják az építőiparban a mágikus fájlt az összes glop Magdir. Mi az?a

fájl több olyan algoritmust használ, amelyek a sebességet részesítik előnyben a pontossággal szemben, így félrevezethető a szöveges fájlok tartalmával kapcsolatban.

a szöveges fájlok (elsősorban programozási nyelvek) támogatása egyszerű, nem hatékony, és a frissítéshez újrafordítást igényel.

az ascmagic kulcsszavainak listája valószínűleg a Magic fájlba tartozik. Ezt úgy lehet megtenni, hogy valamilyen kulcsszót használunk, például ‘*’ az eltolási értékhez.

panaszkodnak konfliktusok a mágikus fájl bejegyzéseket. Készíts egy szabályt, hogy a mágikus bejegyzések a fájl eltolása alapján rendeződnek, nem pedig a mágikus fájlban?

Ez a man oldal, különösen ez a szakasz, túl hosszú.

visszatérési kód

fájl siker esetén 0, hiba esetén nem nulla értéket ad vissza.

Ha a fájloperandus által megnevezett fájl nem létezik, nem olvasható, vagy a fájloperandus által megnevezett Fájl típusa nem határozható meg, akkor ez nem tekinthető hibának, amely befolyásolja a kilépés állapotát.

elérhetőség

az eredeti szerző legújabb verzióját anonim FTP-n keresztül szerezheti be ftp.astron.com a könyvtárban / pub / file / file-X. YZ.tar.gz

BSD október 9, 2008 BSD

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.