2
.\" Traduzione in italiano di Giovanni Bortolozzo <borto@dei.unipd.it>
4
.\" Correzioni, Ottavio G. Rizzo, ottobre 1998
5
.\" Aggiornamento alla 3.25, Ottavio G. Rizzo, marzo 1999
8
.TH FILE 1 "Coperto da copyright, ma redistribuibile"
9
.\# $Id: file.1,v 1.7 1999/03/31 12:50:53 otto Exp $
12
\- determina il tipo di file
26
Questa pagina di manuale documenta la versione 3.25 del comando
29
analizza ognuno degli argomenti con lo scopo di classificarli. Ci sono
30
tre insiemi di test, eseguiti nell'ordine seguente: test sul
31
filesystem, test sul numero magico, e test sul linguaggio. Il
32
tipo del file viene determinato dal
36
Il tipo stampato contiene, solitamente, una parole fra
38
(il file contiene solo caratteri
40
ed � probabilmente sicuro leggerlo su di un terminale
43
(il file contiene il risultato della compilazione di un programma, ed � in
44
una qualche forma comprensibile ad un kernel \s-1UNIX\s0, o altro)
47
col ch� s'intende qualsiasi altra cosa ( questi file sono si solito �binari�
48
non stampabili). Le eccezioni sono dei formati file ben noti (file
49
core, archivi tar) che contengono notoriamente dati binari.
50
Quando si modifica il file
52
o il programma stesso,
53
.BR "si conservino queste parole chiave" .
54
La gente pu� dipendere dal fatto che tutti i file leggibili di una
55
directory abbiano associata la parola �text�. Non fate come a Berkeley
56
dove hanno cambiato �shell commands text� in �shell script�.
58
I test sul filesystem si basano sul valore restituito dalla
61
Il programma prova a vedere se il file � vuoto o se � un un qualche
62
tipo di file speciale. I tipi di file noti, e pertinenti al sistema in
63
questione (socket, collegamenti simbolici, FIFO --- nei sistemi che le
64
implementano), sono riconosciuti, purch� siano stati definiti nel header
68
I test sul numero magico sono usati per analizzare file i cui dati abbiano
69
particolari formati conosciuti. L'esempio canonico sono
70
i binari eseguibili (programmi compilati)
72
il cui formato � definito in
76
nella directory standard di include.
77
Questi file hanno un �numero magico�, posto in una posizione specifica
78
vicino all'inizio del file, per comunicare al sistema operativo \s-1UNIX\s0
79
che sono dei binari eseguibili, e, fra i molti, di quale tipo.
80
Il concetto di �numero magico� si applica, per estensione, anche
81
ai file di dati. Qualsiasi
82
file con un identificativo costante posto ad un piccolo offset
83
fisso pu� di solito essere descritto in tal
84
modo. Le informazioni per questi file sono lette dal file magico
87
Se un argomento sembra essere un file
90
prova a indovinarne il linguaggio. I test sul linguaggio cercano una
91
particolare stringa (vedi
93
che pu� comparire ovunque nei
94
primi blocchi del file. Per esempio, la parola chiave
96
indica che il file � molto probabilmente un file d'input per
98
cos� come la parola chiave
100
indica un programma C.
101
Queste analisi sono meno attendibili di quelle dei due gruppi
102
precedenti e quindi sono fatte per ultime. Le routine di test sulla
103
linguaggio verificano anche altre cose (come gli archivi
105
e determinano quando un file sconosciuto potrebbe essere etichettato
106
come �ascii text� o come �data�.
111
Stampa la versione del programma ed esce.
114
Specifica un elenco alternativo di file contenti i numeri
115
magici. L'elenco pu� essere un singolo file, oppure pi� file separati
119
Prova a guardare dentro i file compressi.
122
Non precede le righe di output con il nome dei file (modalit� breve).
125
Fa una stampa di verifica della valutazione sintattica del file magico. �
126
usata di solito assieme a
128
per verificare il funzionamento di un nuovo file magico prima
132
Legge i nomi dei file da analizzare (uno per riga) da
134
prima dell'elenco degli argomenti.
136
o almeno un nome di file, deve essere presente come argomento; per
137
verificare lo standard input, si usi l'argomento �-� come nome di file.
140
Fa s� che siano seguiti i collegamenti simbolici (nei sistemi in cui
141
esistono), come l'omonima opzione di
145
\- elenco predefinito dei numeri magici.
146
.SH VARIABILI D'AMBIENTE
147
La variabile ambientale
149
pu� essere usata per predefinire i file coi numeri magici.
152
\- descrizione del formato dei file magici.
154
.BR strings (1), " od" (1), " hexdump(1)"
155
\- strumenti per l'analisi di file non di testo.
156
.SH CONFORMIT� AGLI STANDARD
157
Si suppone che questo programma ecceda la �System V Interface
158
Definition� per FILE(CMD), per quanto si possa capire dalle sue vaghe
159
definizioni. Il suo comportamento � compatibile con il programma
160
omonimo di System V; questa versione, per�, riconosce pi� numeri
161
magici e quindi d� in molti casi risultati diversi (ma pi� accurati).
163
Una differenza significativa tra questa versione e quella di System V �
164
che questa tratta ogni spazio bianco come un delimitatore,
165
cosicch� gli spazi nelle stringhe di modello devono essere prodotti
166
come sequenze di escape. Per esempio,
168
>10 stringa language impress\ (imPRESS data)
170
in un file magico precedente, deve essere cambiato in
172
>10 stringa language\e impress (imPRESS data)
174
Inoltre, in questa versione, se una stringa di modello contiene
175
backslash, anche questi devono essere prodotti con le sequenze di
178
0 stringa \ebegindata Andrew Toolkit document
180
in un file magico precedente, deve essere cambiato in
182
0 string \e\ebegindata Andrew Toolkit document
185
Le versioni 3.2 e successive di SunOs della Sun Microsystems includono
188
derivato dalla versione System V, ma con qualche altra estensione. La
189
mia versione ha sole differenze secondario con quella della Sun:
190
include un'estensione dell'operatore �&�, usato, ad esempio, per
192
>16 long&0x7fffffff >0 not stripped
194
Le voci nel file magico sono state raccolte da varie fonti,
195
principalmente USENET, e con il contributo di vari autori. Christos
196
Zoulas (per l'indirizzo si veda sotto) � felice di ricevere voci nuove o
197
corrette per il file magico. Un file magico aggiornato sar� distribuito
200
L'ordine delle voci nel file magico � significativo. A seconda del
201
sistema che si sta usando, l'ordine con il quale sono state messe
202
assieme potrebbe essere sbagliato. Se il vecchio comando
204
usa un file magico, si conservi il vecchio file magico per poterlo
205
confrontare (lo si rinomini in
206
.IR /etc/magic.orig ).
210
in ogni \s-1UNIX\s0 a partire almeno dalla Research Version 6
211
(la pagina di manuale � datata gennaio 1975).
212
La versione System V ha introdotto un cambiamento importante:
213
l'elenco esterno dei tipi di numero magico. Ci� ha rallentato un po' il
214
programma ma lo ha reso pi� flessibile.
216
Questo programma, pur basato sulla versione System V, � stato scritto da
217
Ian Darwin senza che nessun codice altrui sia stata letto.
219
John Gilmore ha revisionato il codice estensivamente, migliorandolo
220
rispetto alla prima versione.
221
Geoff Collyer ha trovato diverse inadeguatezze ed ha fornito alcune
222
delle voci del file magico. Il programma � in continua evoluzione.
224
Scritto da Ian F. Darwin, indirizzo UUCP: {utzoo | ihnp4}!darwin!ian,
225
indirizzo Internet: ian@sq.com, indirizzo postale: P.O. Box 603,
226
Station F, Toronto, Ontario, CANADA M4Y 2L8.
228
Modificato da Rob McMahon, cudcv@warwick.ac.uk, 1989, per estendere
229
`&' dal semplice `x&y != 0' a `x&y op z'.
231
Modificato da Guy Harris, guy@netapp.com, 1993, per:
234
rimettere com'era l'operatore `&' �vecchio stile�, in quanto 1) i
235
cambiamenti di Rob McMahon avevano sconvolto abitudini consolidate, 2)
236
l'operatore `&' nel nuovo stile SunOs, che questa versione di
238
supporta, pu� trattare anche `x&y op z', e 3) i cambiamenti di Rob non
239
erano documentati da nessuna parte;
241
aggiungere livelli multipli di `>';
243
aggiungere le parole chiave �beshort�, �leshort�, ecc. per leggere i
244
numeri nel file in uno ordine di byte specifico, piuttosto che
245
nell'ordine di byte nativo del processo che lancia
249
Cambiato da Ian Darwin e da vari autori fra i quali
250
Christos Zoulas (christos@astron.com), 1990-1997.
251
.SH INFORMAZIONI LEGALI
252
Copyright (c) Ian F. Darwin, Toronto, Canada,
253
1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993.
255
NdT: questa traduzione non ha nessun valore legale, ma � a puro titolo
256
informativo; si consulti la versione originale.
258
Questo software non � oggetto e non pu� essere fatto oggetto di alcuna
259
licenza della American Telephone and Telegraph Company, della Sun
260
Microsystems Inc., della Digital Equipment Inc., della Lotus
261
Development Inc., dei Regents of the University of California, del X
262
Consortium o del MIT, o della Free Software Foundation.
264
Questo software non � soggetto a nessun provvedimento del United
265
States Department of Commerce, e pu� essere esportato in qualsiasi
268
Ognuno ha il permesso di usare questo software per qualsiasi scopo in
269
qualsiasi sistema di computer, e di modificarlo e ridistribuirlo
270
gratuitamente, con le seguenti limitazioni:
272
1. L'autore non � responsabile delle conseguenze derivanti dall'uso di
273
questo software, per quanto orribili, e nemmeno se sono originate da
276
2. Le origini di questo software non devono essere mal attribuite,
277
n� con pretese eplicite n� con ammissioni. Poich� pochi
278
utenti leggono i sorgenti, le attribuzioni devono apparire nella
281
3. Le versioni alterate devono essere segnalate come tali, e non
282
devono essere spacciate per il software originale. Poich� pochi
283
utenti leggono i sorgenti, le attribuzioni devono apparire nella
286
4. Questi avvisi non possono essere n� rimossi n� modificati.
287
.\"Suppongo che le traduzioni siano permesse :-)
289
Alcuni file di supporto (\fIgetopt\fP, \fIstrtok\fP) distribuiti con
290
questo pacchetto sono di Henry Spencer e sono soggetti ai suddetti
293
Alcuni file di supporto (\fIstrtol\fP, \fIstrchr\fP) distribuiti con
294
questo pacchetto sono nel dominio pubblico; sono cos� marcati.
300
sono stati scritti da John Gilmore nel suo programma
302
nel dominio pubblico, e non sono soggetti alle suddette restrizioni.
304
Ci deve essere un modo migliore per automatizzare la costruzione del
305
file magico da tutte le fonti in Magdir. Quale? Meglio ancora, il
306
file magico dovrebbe essere compilato dentro il binario (diciamo,
308
o, meglio ancora, stringhe
310
di lunghezza fissa per l'uso in ambienti di rete eterogenei) per un
311
avvio pi� veloce. Allora il programma potrebbe essere tanto veloce
312
quanto il programma omonimo di Version 7, ma con la flessibilit� della
313
versione del System V.
316
usa diversi algoritmi che favoriscono la velocit� a scapito
317
dell'accuratezza, quindi pu� sbagliarsi sul contenuto dei file
320
Il supporto per il file
322
(principalmente per i linguaggi di
323
programmazione) � semplicistico, inefficiente e richiede la
324
ricompilazione per essere aggiornato.
326
Ci dovrebbe essere una clausola �else� che segua una serie di righe
329
Il file magico e le parole chiave dovrebbero poter accettare le
330
espressioni regolari. Il loro uso del
333
brutto e rende difficile editare il file, ma � consolidato.
335
Potrebbe essere utile permette l'uso delle lettere maiuscole nelle
336
parole chiave, p.es. per distinguere i comandi
338
dalle macro delle manpagine. Ci� verrebbe facilitato dal supporto per
339
le espressioni regolari.
341
Il programma non identifica il \s-2FORTRAN\s0. Dovrebbe essere in
342
grado di scovare il \s-2FORTRAN\s0 vedendo alcune parole chiave che
343
sono identate all'inizio della riga. Ci� sarebbe facilitato dal
344
supporto per le espressioni regolari.
346
La lista delle parole chiave in
348
probabilmente dovrebbe far parte del file magico. Ci� potrebbe essere
349
fatto usando qualche keyword come `*' per il valore di offset.
351
Un'altra ottimizzazione potrebbe essere l'ordinamento del file magico
352
in modo da poter saltare i test sul primo byte, il primo
353
word, il primo long, ecc., una volta passato il primo.
354
Protestare per i conflitti nelle voci del file magico. Aggiungere una
355
regola per la quale l'ordine delle voci magiche si basi sull'offset nel
356
file piuttosto che sulla posizione all'interno del file magico?
358
Il programma dovrebbe fornire un modo per stimare la �bont�
359
della predizione; alla fine rimuovendo le �sparate�
360
(p.es. �From� come primi 5 caratteri del file) perch� alcune non
361
sono cos� buone come altre (p.es. �Newsgroups:� contro
362
"Return-Path:"). Ma se le altre non hanno successo, dovrebbe
363
essere ancora possibile usare la prima.
365
Questo programma � pi� lento del comando file di qualche produttore.
367
Questa pagina di manuale, e in particolare questa sezione, � troppo
368
lunga (NdT: non posso far altro che confermare :-).
370
� possibile ottenere l'ultima versione originale dell'autore con FTP
374
.I /pub/file/file-X.YY.tar.gz
b'\\ No newline at end of file'