Provided by:
manpages-pl_20060617-3_all 
NAZWA
file - okrelenie typu pliku
SK/LADNIA
file [ -bciknsvzL ] [ -f nazwapliku ] [ -m lista ] plik ...
plik -C [ -m plikmag ]
OPIS
Ta strona podrcznika opisuje wersj 3.37 polecenia file.
file sprawdza kady ze swoich argumentow, probujc go sklasyfikowa.
Istniej trzy zestawy testow, ktore s wykonywane w nastpujcej kolejnoci:
testy systemu plikow, testy liczb magicznych, testy jzyka. Pierwszy
zakoczony powodzeniem test powoduje wypisanie typu pliku.
Wypisany typ bdzie zwykle zawieral jedno ze slow text (plik zawiera
tylko znaki drukowalne i kilka sporod znakow sterujcych oraz
prawdopodobnie mona go bezpiecznie czyta na terminalu ASCII ),
executable (wykonywalny -- plik zawiera wyniki kompilacji w formacie
zrozumialym dla jdra pewnego Uniksa lub innego systemu) lub data (dane)
oznaczajce cokolwiek innego (zwykle jest to binarny, niedrukowalny
plik). Wyjtkami s ogolnie znane formaty plikow (pliki core, archiwa
tar), o ktorych wiadomo, e zawieraj dane binarne. Podczas modyfikacji
pliku /usr/share/misc/magic lub te samego programu zachowaj te s/lowa
kluczowe. Wielu polega na tym, e dla wszystkich czytelnych plikow
wypisywane jest slowo ,,text''. Nie naley wic robi tego, co zrobiono w
Berkeley - zmieniono tam ,,shell commands text'' na ,,shell script''.
Naley te zauway, e plik /usr/share/misc/magic jest tworzony
mechanicznie z wielu malych plikow z podkatalogu Magdir dystrybuowanych
rodel niniejszego programu.
Testy systemu plikow s oparte o sprawdzanie wartoci zwracanej przez
funkcj systemow stat(2). Program sprawdza czy plik jest pusty oraz czy
jest jakiego rodzaju plikiem specjalnym. Powinno si da rozpozna
wszystkie rodzaje plikow wystpujce w danym systemie (gniazda, dowizania
symboliczne, nazwane potoki (FIFO), itd.), o ile te rodzaje plikow bd
zdefiniowane w systemowym pliku naglowkowym sys/stat.h.
Testy liczb magicznych slu do sprawdzania plikow, ktore zawieraj dane w
okrelonym formacie. Kanonicznym tego przykladem jest wykonywalne
binarium (skompilowany program) a.out, ktorego format jest zdefiniowany
w a.out.h i prawdopodobnie w exec.h w standardowym katalogu plikow
naglowkowych. Pliki te zawieraj ,,liczby magiczne'' w okrelonym
miejscu w pobliu pocztku pliku. Liczby te informuj uniksowy system
operacyjny o tym, e plik jest wykonywalnym binarium oraz ktory z
moliwych typow binariow reprezentuje. Koncepcja ,,liczb magicznych''
zostala jako rozszerzenie zastosowana rownie do plikow z danymi. Mona
tak opisa kady plik posiadajcy niezmienny identyfikator przy malym i
okrelonym przesuniciu wzgldem pocztku pliku. Informacje identyfikujce
te pliki s odczytywane ze skompilowanego pliku liczb magicznych
/usr/share/misc/magic.mgc lub z /usr/share/misc/magic, gdy skompilowany
plik nie istnieje.
Jeli plik nie pasuje do adnego z wpisow w pliku liczb magicznych,
dokonywane jest sprawdzenie czy jest to plik tekstowy. Rozpoznawane s
zestawy znakow: ASCII, ISO-8859-x, 8-bitowe rozszerzenia ASCII
niezgodne z ISO (uywane w systemach Macintosh i IBM PC), Unicode w
kodowaniu UTF-8, Unicode w kodowaniu UTF-16 oraz EBCDIC. Sprawdzane s
zakresy i cigi bajtow, ktore stanowi drukowalny tekst w kadym z tych
zestawow znakow. Jeli plik przejdzie ktory z tych testow, zglaszany
jest odpowiadajcy mu zestaw znakow. Pliki w ASCII, ISO-8859-x, UTF-8
oraz w rozszerzeniach ASCII s identyfikowane jako ,,text'', gdy s one
na ogol czytejne na dowolnym terminalu; pliki w UTF-16 i EBCDIC stanowi
jedynie ,,character data'' (dane znakowe), gdy jeli zawieraj one tekst,
tekst ten wymaga przed przeczytaniem konwersji. Dodatkowo, file bdzie
probowal okreli inne charakterystyki plikow tekstowych. Jeli wiersze s
zakoczone znakami CR, CRLF lub NEL, zamiast standardowego uniksowego
LF, zostanie to zgloszone. Zostan rownie zidentyfikowane pliki
zawierajce wbudowane sekwencje unikowe lub wielokrotnego drukowania.
Po okreleniu przez file zestawu znakow uywanego w pliku tekstowym,
sprobuje on odgadn w jakim jzyku plik zostal napisany. Testy jzykowe
skladaj si z poszukiwa okrelonych lacuchow znakowych (por. names.h),
ktore mog pojawi si gdziekolwiek w kilku pierwszych blokach pliku. Na
przyklad slowo kluczowe .br wskazuje, e plik jest najprawdopodobniek
plikiem wejciowym dla programu troff(1) podobnie, jak struct wskazuje
na program w C. Testy te s mniej godne zaufania ni poprzednie dwie
grupy, wic s wykonywane na kocu. Testy jzykowe testuj rownie niektore
pliki zbiorcze (jak archiwa tar(1)).
Plik, ktory nie moe zosta okrelony jako jako zapisany w jednym z
powyszych zestawow znakow, jest po prostu okrelany jako ,,data''
(dane).
OPCJE
-b Nie podawanie nazw plikow na pocztku wierszy wynikowych (tryb
skrocony).
-c Powoduje sprawdzanie wydruku przetworzonej postaci pliku
magicznego. Jest to zwykle uywane w polczeniu z -m, aby
odpluskwi plik liczb magicznych przed jego zainstalowaniem.
-C Zapisuje plik wynikowy magic.mgc, ktory zawiera wstpnie
przetworzon wersj pliku.
-f nazwapliku
Odczytuje nazwy testowanych plikow z nazwapliku (po jednym w
wierszu) przed list argumentow. Obecna musi by albo nazwapliku
albo przynajmniej jeden argument bdcy nazw pliku; aby testowa
standardowe wejcie, naley uy argumentu ,,-''jako nazwy pliku.
-i Powoduje wypisywanie przez polecenie file lacuchow stanowicych
typy MIME, zamiast bardziej tradycyjnej postaci czytelnej dla
czlowieka. Zatem moe ono raczej wypisa ,,text/plain;
charset=us-ascii'' zamiast ,,ASCII text''. Aby ta opcja
dzialala, file zmienia sposob w jaki obsluguje rozpoznane pliki
(takie jak wiele typow plikow tekstowych, katalogi itd.) oraz
posluguje si alternatywnym plikiem ,,liczb magicznych''.
(Zobacz sekcj ,,PLIKI'', poniej.)
-k Nie zatrzymuje si po znalezieniu pierwszego dopasowania,
kontynuuje testowanie.
-m lista
Podaje alternatywn list plikow z liczbami magicznymi. Moe to by
pojedynczy plik lub rozdzielona dwukropkami lista plikow.
-n Wymusza wyprowadzenie danych wyjciowych po sprawdzeniu kadego
pliku. Jest to przydatne jedynie podczas sprawdzania listy
plikow. W zamierzeniu ma by przydatne programom, ktore wymagaj
wyprowadzania typow plikow w potoku.
-v Drukuje informacje o wersji i koczy.
-z Probuje zaglda do plikow skompresowanych.
-L powoduje, e program poda za dowizaniami symbolicznymi, podobnie
jak w przypadku opcji ls(1) o identycznej nazwie (na systemach,
ktore obsluguj dowizania symboliczne).
-s Normalnie, file probuje czyta i okrela rodzaj pliku jedynie dla
tych argumentow, ktore s plikami zgloszonymi przez stat(2) jako
zwykle pliki. Pozwala to unikn problemow, gdy czytanie plikow
specjalnych moe mie nieprzyjemne konsekwencje. Podanie opcji -s
powoduje, e file czyta rownie argumenty bdce plikami
specjalnymi urzdze blokowych i znakowych. Jest to przydatne do
okrelania rodzaju systemu plikow w przypadku danych na surowych
partycjach dyskow, stanowicych pliki specjalne urzdze
blokowych. Opcja ta powoduje rownie, e file nie zwaa na
zglaszany przez stat(2) rozmiar pliku, gdy w niektorych
systemach funkcja ta zglasza zero dla surowych partycji dyskow.
PLIKI
/usr/share/misc/magic.mgc - domylna skompilowana lista liczb magicznych
/usr/share/misc/magic - domylna lista liczb magicznych
/usr/share/misc/magic.mime - domylna lista liczb magicznych, sluca do
wypisywania typow MIME w przypadku podania opcji -i.
RODOWISKO
Zmienna rodowiskowa MAGIC ustawia domylny plik liczb magicznych.
ZOBACZ TAKE
magic(5) - opis formatu pliku liczb magicznych.
strings(1), od(1), hexdump(1) - narzdzia do testowania plikow
nietekstowych.
ZGODNO ZE STANDARDAMI
Program ten prawdopodobnie wykracza poza definicj FILE(CMD) z definicji
interfejsu Systemu V (System V Interface Definition). Wydaje si tak
przynajmniej z tego, co mona zrozumie z tamtejszego niejasnego jzyka...
Zachowanie programu jest w wikszoci zgodne z zachowaniem programu z
Systemu V o tej samej nazwie. Wersja niniejsza zna wicej magii, wic
bdzie dawala w wielu wypadkach inne (dokladniejsze) wyniki.
Jedn z istotnych ronic midzy t wersj i wersj z Systemu V, jest to, e
niniejsza wersja traktuje biale znaki jako separatory, wic spacje w
lacuchach wzorcow musz by chronione (przez odwrotny ukonik). Na
przyklad,
>10 string language impress (imPRESS data)
w istniejcym pliku magicznym musialo by by zmienione na
>10 string language\ impress (imPRESS data)
Dodatkowo, w tej wersji, jeli lacuch wzorca zawiera odwrotny ukonik, to
musi by on chroniony. Na przyklad
0 string \begindata Andrew Toolkit document
w istniejcym pliku magicznym musialo by by zmienione na
0 string \\begindata Andrew Toolkit document
Wersja 3.2 SunOS i poniejsze pochodzce z Sun Microsystems zawieraj
polecenie file(1), wywodzce si z polecenia z System V, lecz z pewnymi
rozszerzeniami. Moja wersja roni si od Sun-owskiej tylko malymi
szczegolami. Zawiera ona rozszerzenie operatora `&', uywanego jako np.
>16 long&0x7fffffff >0 not stripped
KATALOG MAGICZNY
Wpisy w pliku liczb magicznych pochodz z wielu rodel, glownie z USENET-
u i zgloszone przez ronych autorow. Christos Zoulas (adres poniej)
bdzie zbieral dodatkowe lub poprawione wpisy pliku liczb magicznych.
Zebrane wpisy bd okresowo dystrybuowane.
Kolejno wpisow w pliku magicznym jest istotna. Zalenie od uywanego
systemu, kolejno, w ktorej s uloone, moe by nieprawidlowa. Jeli stare
polecenie file uywa pliku magicznego, warto zachowa stary plik magiczny
dla porownania (zmieniajc jego nazw na /usr/share/misc/magic.orig).
PRZYK/LADY
$ file file.c file /dev/hda
file.c: C program text
file: ELF 32-bit LSB executable, Intel 80386, version 1,
dynamically linked, not stripped
/dev/hda: block special
$ file -s /dev/hda{,1,2,3,4,5,6,7,8,9,10}
/dev/hda: x86 boot sector
/dev/hda1: Linux/i386 ext2 filesystem
/dev/hda2: x86 boot sector
/dev/hda3: x86 boot sector, extended partition table
/dev/hda4: Linux/i386 ext2 filesystem
/dev/hda5: Linux/i386 swap file
/dev/hda6: Linux/i386 swap file
/dev/hda7: Linux/i386 swap file
/dev/hda8: Linux/i386 swap file
/dev/hda9: empty
/dev/hda10: empty
$ file -i file.c file /dev/hda
file.c: text/x-c
file: application/x-executable, dynamically linked (uses shared libs), not stripped
/dev/hda: application/x-not-regular-file
HISTORIA
Polecenie file istnialo w kadym systemie UNIX od przynajmniej wersji
Research Version 6 (strona podrcznika man z 16 stycznia 1975). Wersja
z Systemu V wprowadzila jedn istotn glown zmian: zewntrzn list typow
liczb magicznych. Spowolnilo to troch program, lecz uczynilo go
bardziej elastycznym.
Program ten, oparty na wersji z Systemu V, zostal napisany przez Iana
Darwina <ian@darwinsys.com> bez zagldania do innych rodel.
John Gilmore przerobil mocno ten kod, czynic go lepszym ni pierwsza
wersja. Geoff Collyer znalazl kilka nietrafnoci i dostarczyl troch
wpisow w pliku liczb magicznych. Zmiana obslugi operatora ,,&'' przez
Roba McMahona, cudcv@warwick.ac.uk, w 1989.
Guy Harris, guy@netapp.com, wykonal wiele zmian w okresie od 1993 do
dzisiaj.
Podstawowy rozwoj i konserwacj w okresie od 1990 do dzisiaj prowadzi
Christos Zoulas (christos@astron.com).
Zmodyfikowany przez Chrisa Lowtha, chris@lowth.com, w 2000: Obsluga
opcji ,,-i'' powodujcej wyprowadzanie lacuchow typow MIME oraz
korzystajcej z alternatywnego pliku liczb magicznych i wbudowanej
logiki.
Zmodyfikowany przez Erica Fischera (enf@pobox.com), w lipcu 2000, aby
rozpoznawal kody znakow i probowal zidentyfikowa jzyk plikow nie-ASCII.
Lista osob, ktore wniosly wklad do katalogu "Magdir" (rodla pliku
/etc/magic) jest za dluga, aby j ty przytacza. Wiecie kim jestecie;
dzikujemy.
NOTKA PRAWNA
Copyright (c) Ian F. Darwin, Toronto, Canada, 1986-1999. Na
standardowej licencji Berkeley Software Distribution; znajduje si ona w
pliku LEGAL.NOTICE dystrybyowanych rodel.
Pliki tar.h oraz is_tar.c zostaly napisane przez Johna Gilmore'a a
pochodz z jego ogolnie dostpnego programu tar, i nie podlegaj powyszej
licencji.
B/LDY
Musi istnie lepszy sposob na zautomatyzowanie konstrukcji pliku liczb
magicznych ze wszystkiego w Magdir. Jaki to sposob? Co wicej, plik
magiczny powinien by kompilowany do binarium (powiedzmy, ndbm(3) lub
jeszcze lepiej, do ASCII o stalej dlugoci lacuchow znakowych do uytku w
heterogenicznych rodowiskach sieciowych) w celu szybszego uruchamiania.
Wtedy program dzialalby tak szybko, jak program o tej samej nazwie z
Wersji 7, z elastycznoci wersji z Systemu V.
file uywa kilku algorytmow, ktore przedkladaj szybko nad dokladno, wic
moe zosta zmylony co do zawarotci plikow tekstowych.
Obsluga plikow tekstowych (przede wszystkim dla jzykow programowania)
jest uproszczona, nieefektywna a do aktualizacji wymaga rekompilacji.
Powinnna istnie klauzula ,,else'', aby obsluy kontynuacje linii.
Plik liczb magicznych i slowa kluczowe powinny obslugiwa wyraenia
regularne. Uywanie przez nie znaku ASCII TAB jako separatora pol jest
paskudne i utrudnia edycj plikow, ale jest ju zakorzenione.
Moe by zalecanym zezwolenie na wystpowanie wielkich liter w slowach
kluczowych, np. polecenia troff(1) vs makra stron podrcznika man.
Obsluga wyrae regularnych ulatwilaby to.
Program nie identyfikuje poprawnie FORTRANu. Powinno by moliwe
rozpoznawanie FORTRANu przez wyszukanie pewnych slow kluczowych, ktore
pojawiaj si po wciciach na pocztku linii. Obsluga wyrae regularnych
ulatwilaby to.
Lista slow kluczowych w ascmagic prawdopodobnie przynaley do pliku
liczb magicznych. Mona to zrobi poprzez uycie jakiego slowa
kluczowego, w rodzaju ,,*'' jako wartoci przesunicia w pliku.
Inn optymalizacj byloby sortowanie pliku magicznego w ten sposob, by
mona bylo przelecie wszystkie testy pierwszego bajtu, pierwszego slowa,
pierwszego podwojnego slowa itd., gdy tylko zostanie on zaladowany.
Narzekania na konflikty we wpisach plikow magicznych. Ustalenie zasady,
e wpisy w pliku liczb magicznych s sortowane w oparciu o przesunicie w
badanym pliku, nie za o pozycj wewntrz pliku magicznego?
Program powinien umoliwi ocen, ,,jak dobre'' bylo zgadnicie. Koczymy
na usuwaniu zgadni (np. ,,From '' jako pierwsze 5 znakow w pliku),
poniewa nie s one tak dobre jak inne zgadnicia (np. ,,Newsgroups:'' vs
,,Return-Path:''). Jednak wci, jeli inne nie bd pasowa, powinno by
moliwe uycie pierwszych zgadni.
Program ten jest wolniejszy ni polecenia file niektorych dystrybutorow.
Nowa obsluga kodow wieloznakowych czyni go jeszcze wolniejszym.
Ta strona podrcznika man, a szczegolnie ta sekcja, jest zbyt dluga.
DOSTPNO
Najnowsz oryginaln wersj programu tego autora mona pobra z anonimowego
ftp z ftp.astron.com z katalogu /pub/file/file-X.YY.tar.gz
INFORMACJE O T/LUMACZENIU
Powysze tlumaczenie pochodzi z nieistniejcego ju Projektu Tlumaczenia
Manuali i moe nie by aktualne. W razie zauwaenia ronic midzy powyszym
opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji,
prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.
Chronione prawem autorskim ale dystrybuowalne FILE(1)