File: file.1

package info (click to toggle)
manpages-pl 20050320-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 12,200 kB
  • ctags: 16
  • sloc: makefile: 1,454; perl: 477; sh: 316
file content (432 lines) | stat: -rw-r--r-- 15,768 bytes parent folder | download | duplicates (3)
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