1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432
|
.\" {PTM/PB/0.1/21-06-1999/"okrelenie typ pliku"}
.\" Last update: Andrzej M. Krzysztofowicz <ankry@pld.org.pl>, Apr 2002
.\"
.TH FILE 1 "Chronione prawem autorskim ale dystrybuowalne"
.\" $Id: file.1,v 1.8 2002/04/09 22:29:29 ankry Exp $
.SH NAZWA
file
\- okrelenie typu pliku
.SH SKADNIA
.B file
[
.B \-bciknsvzL
]
[
.B \-f
.I nazwapliku
]
[
.B \-m
.I lista
]
.I plik
\&...
.br
.B plik
.B -C
[
.B \-m
.I plikmag
]
.SH OPIS
Ta strona podrcznika opisuje wersj 3.37 polecenia
.BR file .
.PP
.B file
sprawdza kady ze swoich argumentw, prbujc go sklasyfikowa. Istniej trzy
zestawy testw, ktre s wykonywane w nastpujcej kolejnoci: testy systemu
plikw, testy liczb magicznych, testy jzyka.
.I Pierwszy
zakoczony powodzeniem test powoduje wypisanie typu pliku.
.PP
Wypisany typ bdzie zwykle zawiera jedno ze sw
.B text
(plik zawiera tylko znaki drukowalne i kilka spord znakw sterujcych oraz
prawdopodobnie mona go bezpiecznie czyta na terminalu
.SM ASCII
),
.B executable
(wykonywalny --
plik zawiera wyniki kompilacji w formacie zrozumiaym dla jdra pewnego
Uniksa lub innego systemu) lub
.B data
(dane) oznaczajce cokolwiek innego (zwykle jest to binarny, niedrukowalny
plik). Wyjtkami s oglnie znane formaty plikw (pliki core, archiwa tar),
o ktrych wiadomo, e zawieraj dane binarne.
Podczas modyfikacji pliku
.I /usr/share/misc/magic
lub te samego programu
.BR "zachowaj te sowa kluczowe" .
Wielu polega na tym, e dla wszystkich czytelnych plikw wypisywane jest sowo
,,text''. Nie naley wic robi tego, co zrobiono w Berkeley \- zmieniono tam
,,shell commands text'' na ,,shell script''.
Naley te zauway, e plik
.I /usr/share/misc/magic
jest tworzony mechanicznie z wielu maych plikw z podkatalogu
.I Magdir
dystrybuowanych rde niniejszego programu.
.PP
Testy systemu plikw s oparte o sprawdzanie wartoci zwracanej przez funkcj
systemow
.BR stat (2).
Program sprawdza czy plik jest pusty oraz czy jest jakiego rodzaju plikiem
specjalnym. Powinno si da rozpozna wszystkie rodzaje plikw wystpujce
w danym systemie (gniazda, dowizania symboliczne, nazwane potoki (FIFO),
itd.), o ile te rodzaje plikw bd zdefiniowane w systemowym pliku
nagwkowym
.IR sys/stat.h .
.PP
Testy liczb magicznych su do sprawdzania plikw, ktre zawieraj dane w
okrelonym formacie. Kanonicznym tego przykadem jest wykonywalne binarium
(skompilowany program)
.IR a.out ,
ktrego format jest zdefiniowany w
.I a.out.h
i prawdopodobnie w
.I exec.h
w standardowym katalogu plikw nagwkowych.
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 ktry z moliwych typw binariw reprezentuje.
Koncepcja ,,liczb magicznych'' zostaa jako rozszerzenie zastosowana rwnie
do plikw z danymi. Mona tak opisa kady plik posiadajcy niezmienny
identyfikator przy maym i okrelonym przesuniciu wzgldem pocztku pliku.
Informacje identyfikujce te pliki s odczytywane ze skompilowanego pliku
liczb magicznych
.I /usr/share/misc/magic.mgc
lub z
.IR /usr/share/misc/magic ,
gdy skompilowany plik nie istnieje.
.PP
Jeli plik nie pasuje do adnego z wpisw w pliku liczb magicznych,
dokonywane jest sprawdzenie czy jest to plik tekstowy. Rozpoznawane s zestawy
znakw: 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 bajtw, ktre
stanowi drukowalny tekst w kadym z tych zestaww znakw.
Jeli plik przejdzie ktry z tych testw, zgaszany jest odpowiadajcy mu
zestaw znakw. Pliki w ASCII, ISO-8859-x, UTF-8 oraz w rozszerzeniach ASCII s
identyfikowane jako ,,text'', gdy s one na og 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,
.B file
bdzie prbowa okreli inne charakterystyki plikw tekstowych. Jeli wiersze
s zakoczone znakami CR, CRLF lub NEL, zamiast standardowego uniksowego LF,
zostanie to zgoszone. Zostan rwnie zidentyfikowane pliki zawierajce
wbudowane sekwencje unikowe lub wielokrotnego drukowania.
.PP
Po okreleniu przez
.B file
zestawu znakw uywanego w pliku tekstowym, sprbuje on odgadn w jakim
jzyku plik zosta napisany.
Testy jzykowe skadaj si z poszukiwa okrelonych acuchw znakowych
(por.
.IR names.h ),
ktre mog pojawi si gdziekolwiek w kilku pierwszych blokach pliku.
Na przykad sowo kluczowe
.B .br
wskazuje, e plik jest najprawdopodobniek plikiem wejciowym dla programu
.BR troff (1)
podobnie, jak
.B struct
wskazuje na program w C.
Testy te s mniej godne zaufania ni poprzednie dwie grupy, wic s
wykonywane na kocu. Testy jzykowe testuj rwnie niektre pliki zbiorcze
(jak archiwa
.BR tar (1)).
.PP
Plik, ktry nie moe zosta okrelony jako jako zapisany w jednym
z powyszych zestaww znakw, jest po prostu okrelany jako ,,data'' (dane).
.SH OPCJE
.TP 8
.B \-b
Nie podawanie nazw plikw na pocztku wierszy wynikowych (tryb skrcony).
.TP 8
.B \-c
Powoduje sprawdzanie wydruku przetworzonej postaci pliku magicznego. Jest to
zwykle uywane w poczeniu z
.BE \-m ,
aby odpluskwi plik liczb magicznych przed jego zainstalowaniem.
.TP 8
.B \-C
Zapisuje plik wynikowy magic.mgc, ktry zawiera wstpnie przetworzon wersj
pliku.
.TP 8
.BI \-f " nazwapliku"
Odczytuje nazwy testowanych plikw z
.I nazwapliku
(po jednym w wierszu)
przed list argumentw.
Obecna musi by albo
.I nazwapliku
albo przynajmniej jeden argument bdcy nazw pliku; aby testowa standardowe
wejcie, naley uy argumentu ,,-''jako nazwy pliku.
.TP 8
.B \-i
Powoduje wypisywanie przez polecenie file acuchw stanowicych typy MIME,
zamiast bardziej tradycyjnej postaci czytelnej dla czowieka. Zatem moe ono
raczej wypisa ,,text/plain; charset=us-ascii'' zamiast ,,ASCII text''.
Aby ta opcja dziaaa, file zmienia sposb w jaki obsuguje rozpoznane pliki
(takie jak wiele typw plikw tekstowych, katalogi itd.) oraz posuguje si
alternatywnym plikiem ,,liczb magicznych''.
(Zobacz sekcj ,,PLIKI'', poniej.)
.TP 8
.B \-k
Nie zatrzymuje si po znalezieniu pierwszego dopasowania, kontynuuje
testowanie.
.TP 8
.BI \-m " lista"
Podaje alternatywn list plikw z liczbami magicznymi. Moe to by
pojedynczy plik lub rozdzielona dwukropkami lista plikw.
.TP 8
.B \-n
Wymusza wyprowadzenie danych wyjciowych po sprawdzeniu kadego pliku. Jest
to przydatne jedynie podczas sprawdzania listy plikw. W zamierzeniu ma by
przydatne programom, ktre wymagaj wyprowadzania typw plikw w potoku.
.TP 8
.B \-v
Drukuje informacje o wersji i koczy.
.TP 8
.B \-z
Prbuje zaglda do plikw skompresowanych.
.TP 8
.B \-L
powoduje, e program poda za dowizaniami symbolicznymi, podobnie jak
w przypadku opcji
.BR ls (1)
o identycznej nazwie
(na systemach, ktre obsuguj dowizania symboliczne).
.TP 8
.B \-s
Normalnie,
.B file
prbuje czyta i okrela rodzaj pliku jedynie dla tych argumentw, ktre s
plikami zgoszonymi przez
.BR stat (2)
jako zwyke pliki.
Pozwala to unikn problemw, gdy czytanie plikw specjalnych moe mie
nieprzyjemne konsekwencje. Podanie opcji
.BR \-s
powoduje, e
.B file
czyta rwnie argumenty bdce plikami specjalnymi urzdze blokowych i
znakowych. Jest to przydatne do okrelania rodzaju systemu plikw w przypadku
danych na surowych partycjach dyskw, stanowicych pliki specjalne urzdze
blokowych. Opcja ta powoduje rwnie, e
.B file
nie zwaa na zgaszany przez
.BR stat (2)
rozmiar pliku, gdy w niektrych systemach funkcja ta zgasza zero dla
surowych partycji dyskw.
.SH PLIKI
.I /usr/share/misc/magic.mgc
\- domylna skompilowana lista liczb magicznych
.PP
.I /usr/share/misc/magic
\- domylna lista liczb magicznych
.PP
.I /usr/share/misc/magic.mime
\- domylna lista liczb magicznych, suca do wypisywania typw MIME
w przypadku podania opcji \-i.
.SH RODOWISKO
Zmienna rodowiskowa
.B MAGIC
ustawia domylny plik liczb magicznych.
.SH "ZOBACZ TAKE"
.BR magic (5)
\- opis formatu pliku liczb magicznych.
.br
.BR strings (1), " od" (1), " hexdump" (1)
\- narzdzia do testowania plikw nietekstowych.
.SH "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 dawaa
w wielu wypadkach inne (dokadniejsze) wyniki.
.PP
Jedn z istotnych rnic midzy t wersj i wersj z Systemu V, jest to,
e niniejsza
wersja traktuje biae znaki jako separatory, wic spacje w acuchach
wzorcw musz by chronione (przez odwrotny ukonik). Na przykad,
.br
>10 string language impress\ (imPRESS data)
.br
w istniejcym pliku magicznym musiao by by zmienione na
.br
>10 string language\e impress (imPRESS data)
.br
Dodatkowo, w tej wersji, jeli acuch wzorca zawiera odwrotny ukonik, to
musi by on chroniony. Na przykad
.br
0 string \ebegindata Andrew Toolkit document
.br
w istniejcym pliku magicznym musiao by by zmienione na
.br
0 string \e\ebegindata Andrew Toolkit document
.br
.PP
Wersja 3.2 SunOS i pniejsze pochodzce z Sun Microsystems zawieraj
polecenie
.BR file (1),
wywodzce si z polecenia z System V, lecz z pewnymi rozszerzeniami. Moja
wersja rni si od Sun-owskiej tylko maymi szczegami. Zawiera ona
rozszerzenie operatora `&', uywanego jako np.
.br
>16 long&0x7fffffff >0 not stripped
.SH "KATALOG MAGICZNY"
Wpisy w pliku liczb magicznych pochodz z wielu rde, gwnie z USENET-u
i zgoszone przez rnych autorw.
Christos Zoulas (adres poniej) bdzie zbiera dodatkowe lub poprawione
wpisy pliku liczb magicznych. Zebrane wpisy bd okresowo dystrybuowane.
.PP
Kolejno wpisw w pliku magicznym jest istotna. Zalenie od uywanego
systemu, kolejno, w ktrej s uoone, moe by nieprawidowa. Jeli
stare polecenie
.B file
uywa pliku magicznego, warto zachowa stary plik magiczny dla porwnania
(zmieniajc jego nazw na
.IR /usr/share/misc/magic.orig ).
.SH PRZYKADY
.nf
$ 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
.fi
.SH HISTORIA
Polecenie
.B file
istniao w kadym systemie \s-1UNIX\s0 od przynajmniej wersji Research
Version 6 (strona podrcznika man z 16 stycznia 1975).
Wersja z Systemu V wprowadzia jedn istotn gwn zmian:
zewntrzn list typw liczb magicznych.
Spowolnio to troch program, lecz uczynio go bardziej elastycznym.
.PP
Program ten, oparty na wersji z Systemu V, zosta napisany przez Iana Darwina
<ian@darwinsys.com> bez zagldania do innych rde.
.PP
John Gilmore przerobi mocno ten kod, czynic go lepszym ni pierwsza wersja.
Geoff Collyer znalaz kilka nietrafnoci i dostarczy troch wpisw w pliku
liczb magicznych. Zmiana obsugi operatora ,,&'' przez Roba McMahona,
cudcv@warwick.ac.uk, w 1989.
.PP
Guy Harris, guy@netapp.com, wykona wiele zmian w okresie od 1993 do dzisiaj.
.PP
Podstawowy rozwj i konserwacj w okresie od 1990 do dzisiaj prowadzi
Christos Zoulas (christos@astron.com).
.PP
Zmodyfikowany przez Chrisa Lowtha, chris@lowth.com, w 2000:
Obsuga opcji ,,-i'' powodujcej wyprowadzanie acuchw typw MIME oraz
korzystajcej z alternatywnego pliku liczb magicznych i wbudowanej logiki.
.PP
Zmodyfikowany przez Erica Fischera (enf@pobox.com), w lipcu 2000,
aby rozpoznawa kody znakw i prbowa zidentyfikowa jzyk plikw nie-ASCII.
.PP
Lista osb, ktre wniosy wkad do katalogu "Magdir" (rda pliku
/etc/magic) jest za duga, aby j ty przytacza.
Wiecie kim jestecie; dzikujemy.
.SH "NOTKA PRAWNA"
.\" [Nie powinna by tumaczona]
Copyright (c) Ian F. Darwin, Toronto, Canada, 1986-1999.
Na standardowej licencji Berkeley Software Distribution; znajduje si ona
w pliku LEGAL.NOTICE dystrybyowanych rde.
.PP
Pliki
.I tar.h
oraz
.I is_tar.c
zostay napisane przez Johna Gilmore'a a pochodz z jego oglnie dostpnego
programu
.BR tar ,
i nie podlegaj powyszej licencji.
.SH BDY
Musi istnie lepszy sposb na zautomatyzowanie konstrukcji pliku liczb
magicznych ze wszystkiego w Magdir. Jaki to sposb?
Co wicej, plik magiczny powinien by kompilowany do binarium (powiedzmy,
.BR ndbm (3)
lub jeszcze lepiej, do
.SM ASCII
o staej dugoci acuchw znakowych do uytku w heterogenicznych
rodowiskach sieciowych) w celu szybszego uruchamiania.
Wtedy program dziaaby tak szybko, jak program o tej samej nazwie z Wersji 7,
z elastycznoci wersji z Systemu V.
.PP
.B file
uywa kilku algorytmw, ktre przedkadaj szybko nad dokadno, wic
moe zosta zmylony co do zawarotci plikw tekstowych.
.PP
Obsuga plikw tekstowych (przede wszystkim dla jzykw programowania)
jest uproszczona, nieefektywna a do aktualizacji wymaga rekompilacji.
.PP
Powinnna istnie klauzula ,,else'', aby obsuy kontynuacje linii.
.PP
Plik liczb magicznych i sowa kluczowe powinny obsugiwa wyraenia regularne.
Uywanie przez nie znaku
.SM "ASCII TAB"
jako separatora pl jest paskudne i utrudnia edycj plikw, ale jest ju
zakorzenione.
.PP
Moe by zalecanym zezwolenie na wystpowanie wielkich liter w sowach
kluczowych, np. polecenia
.BR troff (1)
vs makra stron podrcznika man.
Obsuga wyrae regularnych uatwiaby to.
.PP
Program nie identyfikuje poprawnie \s-2FORTRAN\s0u.
Powinno by moliwe rozpoznawanie \s-2FORTRAN\s0u przez wyszukanie pewnych
sw kluczowych, ktre pojawiaj si po wciciach na pocztku linii.
Obsuga wyrae regularnych uatwiaby to.
.PP
Lista sw kluczowych w
.I ascmagic
prawdopodobnie przynaley do pliku liczb magicznych.
Mona to zrobi poprzez uycie jakiego sowa kluczowego, w rodzaju ,,*''
jako wartoci przesunicia w pliku.
.PP
Inn optymalizacj byoby sortowanie pliku magicznego w ten sposb, by mona
byo przelecie wszystkie testy pierwszego bajtu, pierwszego sowa,
pierwszego podwjnego sowa itd., gdy tylko zostanie on zaadowany. Narzekania
na konflikty we wpisach plikw 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?
.PP
Program powinien umoliwi ocen, ,,jak dobre'' byo zgadnicie.
Koczymy na usuwaniu zgadni (np. ,,From '' jako pierwsze 5 znakw 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.
.PP
Program ten jest wolniejszy ni polecenia file niektrych dystrybutorw.
Nowa obsuga kodw wieloznakowych czyni go jeszcze wolniejszym.
.PP
Ta strona podrcznika man, a szczeglnie ta sekcja, jest zbyt duga.
.SH DOSTPNO
Najnowsz oryginaln wersj programu tego autora mona pobra z anonimowego
ftp z
.B ftp.astron.com
z katalogu
.I /pub/file/file-X.YY.tar.gz
|