fájl (parancs) - file (command)
| Fejlesztő (k) | AT&T Bell Laboratories |
|---|---|
| Első kiadás | 1973 a Unix Research Version 4 részeként ; 1986 - os nyílt forráskódú reimplementáció |
| Adattár | github |
| Beírták | C |
| Operációs rendszer | Unix , Unix-szerű , 9. terv , IBM i |
| Felület | Többplatformos |
| típus | Fájltípus -érzékelő |
| Engedély | BSD licenc , CDDL |
| Weboldal | darwinsys |
A parancs a Unix és a Unix-szerű operációs rendszerek szabványos programja a számítógépes fájlban található adatok típusának felismerésére .
file
Történelem
Az eredeti verzió 1973 file-ban a Unix Research Version 4 -ből származik . A System V jelentős frissítést hozott, számos fontos változtatással, nevezetesen a fájltípus -információk áthelyezésével egy külső szöveges fájlba, ahelyett, hogy magába a binárisba fordította volna.
A legtöbb nagy BSD és Linux disztribúció ingyenes , nyílt forráskódú újrafeldolgozást használ , amelyet 1986–87 között írt Ian Darwin a semmiből. 1989 -ben Geoff Collyer kibővítette, és azóta számos más, például Guy Harris, Chris Lowth és Eric Fischer közreműködésével; karbantartását 1993 végétől Christos Zoulas szervezte . Az OpenBSD rendszernek megvan a saját részhalmaza, amelyet a semmiből írtak, de továbbra is a Darwin/Zoulas gyűjteményt használja a mágikus fájlformátumú információkból.
A fileparancsot az IBM i operációs rendszerbe is átvitték .
Leírás
A Single Unix Specification (SUS) előírja, hogy a parancssorban megadott fájlon tesztsorozatot kell végrehajtani:
- ha a fájl nem olvasható, vagy annak Unix fájltípusa nincs meghatározva, a
fileprogram jelzi, hogy a fájl feldolgozásra került, de típusa nem volt meghatározva. -
fileképesnek kell lennie arra, hogy meghatározza a típusú könyvtár , FIFO , foglalat , blokk speciális fájl , és a karakter speciális fájl - a nulla hosszúságú fájlokat azonosítják
- a fájl kezdeti részét figyelembe kell venni, és
filehelyzetérzékeny teszteket kell használni - a teljes fájlt figyelembe vesszük, és
filekörnyezetfüggő teszteket kell használni - A fájl azonosított
datafájl
fileA helyzetérzékeny teszteket általában úgy hajtják végre, hogy a fájl különböző helyeit a mágikus számok szöveges adatbázisához hasonlítják (lásd a Használat című részt). Ez különbözik más egyszerűbb módszerektől, mint például a fájlkiterjesztések és a sémák, például a MIME .
A legtöbb megvalósításban a fileparancs adatbázist használ a vezető bájtok szondázásának vezérléséhez. Az adatbázist valósul nevű fájlt magic, melynek helye általában /etc/magic, /usr/share/file/magicvagy hasonló helyen.
Használat
A SUS a következő lehetőségeket írja elő:
- -M file, specifikusan formázott fájl megadása, amely pozícióérzékeny teszteket tartalmaz; alapértelmezett helyzetérzékeny és környezetfüggő teszteket nem hajtanak végre.
-
-m file, mint -M, de az alapértelmezett teszteket a benne foglalt tesztek után hajtják végre
file. - -d, alapértelmezett helyzetérzékeny és környezetfüggő teszteket végezzen az adott fájllal; ez az alapértelmezett viselkedés, kivéve, ha -Mvagy -mvan megadva.
- -h, ne vonja le a szimbolikus hivatkozásokat , amelyek egy meglévő fájlra vagy könyvtárra mutatnak.
- -L, hivatkozzon a szimbolikus linkre, amely egy meglévő fájlra vagy könyvtárra mutat.
- -i, ne osztályozza tovább a fájlt, mint azonosítani: nem létező, blokk speciális fájl, speciális karakterfájl, könyvtár, FIFO , foglalat, szimbolikus link vagy normál fájl. A Linux és a BSD rendszerek eltérően viselkednek ezzel az opcióval, és ehelyett egy internetes médiatípust (" MIME -típus") adnak ki, amely azonosítja a felismert fájlformátumot.
Más Unix és Unix-szerű operációs rendszerek ezeken kívül további opciókat is hozzáadhatnak, mint például -s„speciális fájlok”, -k„folytatás” vagy -r„nyers” (példák az alábbiakban).
A parancs csak azt mondja meg, hogy néz ki a fájl , nem azt, hogy milyen (abban az esetben, ha a fájl a tartalmat nézi). Könnyű becsapni a programot, ha varázslatos számot helyez egy fájlba, amelynek tartalma nem egyezik meg vele. Így a parancs nem használható biztonsági eszközként, csak bizonyos helyzetekben.
Példák
$ file file.c file.c: C program text
$ file program program: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped
$ file /dev/hda1 /dev/hda1: block special (0/0)
$ file -s /dev/hda1 /dev/hda1: Linux/i386 ext2 filesystem
Ne feledje, hogy a -s egy nem szabványos opció, amely csak bizonyos platformokon érhető el, és azt írja elő, filehogy olvassa el az eszközfájlokat, és próbálja meg azonosítani azok tartalmát, nem pedig pusztán eszközfájlokként. Általában filenem próbálja meg olvasni az eszközfájlokat, mivel az ilyen fájlok olvasása nemkívánatos mellékhatásokat okozhat.
$ file -k -r libmagic-dev_5.35-4_armhf.deb # (on Linux) libmagic-dev_5.35-4_armhf.deb: Debian binary package (format 2.0) - current ar archive - data
A nem szabványos opció révén -ka program nem áll le az első találat után, hanem más illeszkedési mintákat keres. A -rnéhány verzióban elérhető opció miatt a nyomtathatatlan új sorkarakter nyers formában jelenik meg, nem pedig oktális ábrázolásként.
$ file compressed.gz compressed.gz: gzip compressed data, deflated, original filename, `compressed', last modified: Thu Jan 26 14:08:23 2006, os: Unix
$ file -i compressed.gz # (on Linux) compressed.gz: application/x-gzip; charset=binary
$ file data.ppm data.ppm: Netpbm PPM "rawbits" image data
$ file /bin/cat /bin/cat: Mach-O universal binary with 2 architectures /bin/cat (for architecture ppc7400): Mach-O executable ppc /bin/cat (for architecture i386): Mach-O executable i386
$ file /usr/bin/vi /usr/bin/vi: symbolic link to vim
A szimbolikus linkek azonosítása nem minden platformon érhető el, és a rendszer átirányítja őket, ha -Látadják vagy POSIXLY_CORRECTbeállítják.
Libmagic könyvtár
A (z) Ian Darwin/Christos Zoulas verziójának 4.00-as verziójától kezdve filea funkcionalitása be filevan építve egy libmagic könyvtárba , amely C (és C-kompatibilis) linken keresztül érhető el ; filekönyvtár használatával valósul meg.
Hivatkozások
Külső linkek
- : a fájltípus meghatározása - Parancsok és segédprogramok referenciája, Az egyetlen UNIX specifikáció , 7. szám a The Open Group
- fájl levelezőlistája
- fájlkiadások
Kézi oldalak
- - 9. terv Programozói kézikönyv, 1. kötet
- - Linux felhasználói parancsok kézikönyv
- - NetBSD könyvtári funkciók kézikönyve
- - Linux könyvtári funkciók kézikönyve
- - OpenBSD Általános parancsok kézikönyve
Egyéb
-
Fine Free File Command -
filea főbb BSD és Linux disztribúciókban használt verzió honlapja . -
Fájl a Windows számára - a 32 bites Windows natív GnuWin32 portjának weboldala
file. - A libmagic-dev csomagot a packages.debian.org
- A TrID , egy alternatíva, amely statisztikák alapján rangsorolt válaszokat kínál (nem csak egy).