Provided by:
manpages-it_0.3.4-5_all 
SINTASSI
file [ -vbczL ] [ -f nome_file ] [ -m file_magici ] file ...
DESCRIZIONE
Questa pagina di manuale documenta la versione 3.25 del comando file.
File analizza ognuno degli argomenti con lo scopo di classificarli. Ci
sono tre insiemi di test, eseguiti nell’ordine seguente: test sul
filesystem, test sul numero magico, e test sul linguaggio. Il tipo del
file viene determinato dal primo test che ha successo.
Il tipo stampato contiene, solitamente, una parole fra text (il file
contiene solo caratteri ASCII ed è probabilmente sicuro leggerlo su di
un terminale ASCII), executable (il file contiene il risultato della
compilazione di un programma, ed è in una qualche forma comprensibile
ad un kernel UNIX, o altro) o data, col ché s’intende qualsiasi altra
cosa ( questi file sono si solito «binari» non stampabili). Le
eccezioni sono dei formati file ben noti (file core, archivi tar) che
contengono notoriamente dati binari. Quando si modifica il file
/etc/magic o il programma stesso, si conservino queste parole chiave.
La gente può dipendere dal fatto che tutti i file leggibili di una
directory abbiano associata la parola «text». Non fate come a Berkeley
dove hanno cambiato «shell commands text» in «shell script».
I test sul filesystem si basano sul valore restituito dalla chiamata di
sistema stat(2). Il programma prova a vedere se il file è vuoto o se è
un un qualche tipo di file speciale. I tipi di file noti, e pertinenti
al sistema in questione (socket, collegamenti simbolici, FIFO --- nei
sistemi che le implementano), sono riconosciuti, purché siano stati
definiti nel header di sistema sys/stat.h.
I test sul numero magico sono usati per analizzare file i cui dati
abbiano particolari formati conosciuti. L’esempio canonico sono i
binari eseguibili (programmi compilati) a.out, il cui formato è
definito in a.out.h e possibilmente in exec.h nella directory standard
di include. Questi file hanno un «numero magico», posto in una
posizione specifica vicino all’inizio del file, per comunicare al
sistema operativo UNIX che sono dei binari eseguibili, e, fra i molti,
di quale tipo. Il concetto di «numero magico» si applica, per
estensione, anche
ai file di dati. Qualsiasi file con un identificativo costante posto
ad un piccolo offset fisso può di solito essere descritto in tal modo.
Le informazioni per questi file sono lette dal file magico /etc/magic.
Se un argomento sembra essere un file ASCII, file prova a indovinarne
il linguaggio. I test sul linguaggio cercano una particolare stringa
(vedi names.h) che può comparire ovunque nei primi blocchi del file.
Per esempio, la parola chiave .br indica che il file è molto
probabilmente un file d’input per troff(1), così come la parola chiave
struct indica un programma C. Queste analisi sono meno attendibili di
quelle dei due gruppi precedenti e quindi sono fatte per ultime. Le
routine di test sulla linguaggio verificano anche altre cose (come gli
archivi tar(1)) e determinano quando un file sconosciuto potrebbe
essere etichettato come «ascii text» o come «data».
OPZIONI
-v Stampa la versione del programma ed esce.
-m elenco
Specifica un elenco alternativo di file contenti i numeri
magici. L’elenco può essere un singolo file, oppure più file
separati da dei due punti.
-z Prova a guardare dentro i file compressi.
-b Non precede le righe di output con il nome dei file (modalitÃ
breve).
-c Fa una stampa di verifica della valutazione sintattica del file
magico. È usata di solito assieme a -m per verificare il
funzionamento di un nuovo file magico prima dell’installazione.
-f nome_file
Legge i nomi dei file da analizzare (uno per riga) da nome_file
prima dell’elenco degli argomenti. Nome_file, o almeno un nome
di file, deve essere presente come argomento; per verificare lo
standard input, si usi l’argomento «-» come nome di file.
-L Fa sì che siano seguiti i collegamenti simbolici (nei sistemi
in cui esistono), come l’omonima opzione di ls(1)
FILE
/etc/magic - elenco predefinito dei numeri magici.
VARIABILI Dâ€â€™AMBIENTE
La variabile ambientale MAGIC può essere usata per predefinire i file
coi numeri magici.
VEDERE ANCHE
magic(4) - descrizione del formato dei file magici.
strings(1), od(1), hexdump(1) - strumenti per l’analisi di file non di
testo.
CONFORMITÀ AGLI STANDARD
Si suppone che questo programma ecceda la «System V Interface
Definition» per FILE(CMD), per quanto si possa capire dalle sue vaghe
definizioni. Il suo comportamento è compatibile con il programma
omonimo di System V; questa versione, però, riconosce più numeri magici
e quindi dà in molti casi risultati diversi (ma più accurati).
Una differenza significativa tra questa versione e quella di System V è
che questa tratta ogni spazio bianco come un delimitatore, cosicché gli
spazi nelle stringhe di modello devono essere prodotti come sequenze di
escape. Per esempio,
>10 stringa language impress (imPRESS data)
in un file magico precedente, deve essere cambiato in
>10 stringa language\ impress (imPRESS data)
Inoltre, in questa versione, se una stringa di modello contiene
backslash, anche questi devono essere prodotti con le sequenze di
escape. Per esempio,
0 stringa \begindata Andrew Toolkit document
in un file magico precedente, deve essere cambiato in
0 string \\begindata Andrew Toolkit document
Le versioni 3.2 e successive di SunOs della Sun Microsystems includono
un comando file(1) derivato dalla versione System V, ma con qualche
altra estensione. La mia versione ha sole differenze secondario con
quella della Sun: include un’estensione dell’operatore «&», usato, ad
esempio, per
>16 long&0x7fffffff >0 not stripped
RISORSE MAGICHE
Le voci nel file magico sono state raccolte da varie fonti,
principalmente USENET, e con il contributo di vari autori. Christos
Zoulas (per l’indirizzo si veda sotto) è felice di ricevere voci nuove
o corrette per il file magico. Un file magico aggiornato sarÃ
distribuito periodicamente.
L’ordine delle voci nel file magico è significativo. A seconda del
sistema che si sta usando, l’ordine con il quale sono state messe
assieme potrebbe essere sbagliato. Se il vecchio comando file usa un
file magico, si conservi il vecchio file magico per poterlo confrontare
(lo si rinomini in /etc/magic.orig).
STORIA
C’è stato un comando file in ogni UNIX a partire almeno dalla Research
Version 6 (la pagina di manuale è datata gennaio 1975). La versione
System V ha introdotto un cambiamento importante: l’elenco esterno dei
tipi di numero magico. Ciò ha rallentato un po’ il programma ma lo ha
reso più flessibile.
Questo programma, pur basato sulla versione System V, è stato scritto
da Ian Darwin senza che nessun codice altrui sia stata letto.
John Gilmore ha revisionato il codice estensivamente, migliorandolo
rispetto alla prima versione. Geoff Collyer ha trovato diverse
inadeguatezze ed ha fornito alcune delle voci del file magico. Il
programma è in continua evoluzione.
AUTORE
Scritto da Ian F. Darwin, indirizzo UUCP: {utzoo | ihnp4}!darwin!ian,
indirizzo Internet: ian@sq.com, indirizzo postale: P.O. Box 603,
Station F, Toronto, Ontario, CANADA M4Y 2L8.
Modificato da Rob McMahon, cudcv@warwick.ac.uk, 1989, per estendere ‘&’
dal semplice ‘x&y != 0’ a ‘x&y op z’.
Modificato da Guy Harris, guy@netapp.com, 1993, per:
rimettere com’era l’operatore ‘&’ «vecchio stile», in quanto 1)
i cambiamenti di Rob McMahon avevano sconvolto abitudini
consolidate, 2) l’operatore ‘&’ nel nuovo stile SunOs, che
questa versione di file supporta, può trattare anche ‘x&y op z’,
e 3) i cambiamenti di Rob non erano documentati da nessuna
parte;
aggiungere livelli multipli di ‘>’;
aggiungere le parole chiave «beshort», «leshort», ecc. per
leggere i numeri nel file in uno ordine di byte specifico,
piuttosto che nell’ordine di byte nativo del processo che lancia
file.
Cambiato da Ian Darwin e da vari autori fra i quali Christos Zoulas
(christos@astron.com), 1990-1997.
INFORMAZIONI LEGALI
Copyright (c) Ian F. Darwin, Toronto, Canada, 1986, 1987, 1988, 1989,
1990, 1991, 1992, 1993.
NdT: questa traduzione non ha nessun valore legale, ma è a puro titolo
informativo; si consulti la versione originale.
Questo software non è oggetto e non può essere fatto oggetto di alcuna
licenza della American Telephone and Telegraph Company, della Sun
Microsystems Inc., della Digital Equipment Inc., della Lotus
Development Inc., dei Regents of the University of California, del X
Consortium o del MIT, o della Free Software Foundation.
Questo software non è soggetto a nessun provvedimento del United States
Department of Commerce, e può essere esportato in qualsiasi nazione o
pianeta.
Ognuno ha il permesso di usare questo software per qualsiasi scopo in
qualsiasi sistema di computer, e di modificarlo e ridistribuirlo
gratuitamente, con le seguenti limitazioni:
1. L’autore non è responsabile delle conseguenze derivanti dall’uso di
questo software, per quanto orribili, e nemmeno se sono originate da
suoi difetti.
2. Le origini di questo software non devono essere mal attribuite, né
con pretese eplicite né con ammissioni. Poiché pochi utenti leggono i
sorgenti, le attribuzioni devono apparire nella documentazione.
3. Le versioni alterate devono essere segnalate come tali, e non devono
essere spacciate per il software originale. Poiché pochi utenti leggono
i sorgenti, le attribuzioni devono apparire nella documentazione.
4. Questi avvisi non possono essere né rimossi né modificati.
Alcuni file di supporto (getopt, strtok) distribuiti con questo
pacchetto sono di Henry Spencer e sono soggetti ai suddetti termini.
Alcuni file di supporto (strtol, strchr) distribuiti con questo
pacchetto sono nel dominio pubblico; sono così marcati.
I file tar.h e is_tar.c sono stati scritti da John Gilmore nel suo
programma tar nel dominio pubblico, e non sono soggetti alle suddette
restrizioni.
BACHI
Ci deve essere un modo migliore per automatizzare la costruzione del
file magico da tutte le fonti in Magdir. Quale? Meglio ancora, il file
magico dovrebbe essere compilato dentro il binario (diciamo, ndbm(3) o,
meglio ancora, stringhe ASCII di lunghezza fissa per l’uso in ambienti
di rete eterogenei) per un avvio più veloce. Allora il programma
potrebbe essere tanto veloce quanto il programma omonimo di Version 7,
ma con la flessibilità della versione del System V.
File usa diversi algoritmi che favoriscono la velocità a scapito
dell’accuratezza, quindi può sbagliarsi sul contenuto dei file ASCII.
Il supporto per il file ASCII (principalmente per i linguaggi di
programmazione) è semplicistico, inefficiente e richiede la
ricompilazione per essere aggiornato.
Ci dovrebbe essere una clausola «else» che segua una serie di righe di
continuazione.
Il file magico e le parole chiave dovrebbero poter accettare le
espressioni regolari. Il loro uso del TAB ASCII come delimitatore è
brutto e rende difficile editare il file, ma è consolidato.
Potrebbe essere utile permette l’uso delle lettere maiuscole nelle
parole chiave, p.es. per distinguere i comandi troff(1) dalle macro
delle manpagine. Ciò verrebbe facilitato dal supporto per le
espressioni regolari.
Il programma non identifica il FORTRAN. Dovrebbe essere in grado di
scovare il FORTRAN vedendo alcune parole chiave che sono identate
all’inizio della riga. Ciò sarebbe facilitato dal supporto per le
espressioni regolari.
La lista delle parole chiave in ascmagic probabilmente dovrebbe far
parte del file magico. Ciò potrebbe essere fatto usando qualche keyword
come ‘*’ per il valore di offset.
Un’altra ottimizzazione potrebbe essere l’ordinamento del file magico
in modo da poter saltare i test sul primo byte, il primo word, il primo
long, ecc., una volta passato il primo. Protestare per i conflitti
nelle voci del file magico. Aggiungere una regola per la quale l’ordine
delle voci magiche si basi sull’offset nel file piuttosto che sulla
posizione all’interno del file magico?
Il programma dovrebbe fornire un modo per stimare la «bontà » della
predizione; alla fine rimuovendo le «sparate» (p.es. «From» come primi
5 caratteri del file) perché alcune non sono così buone come altre
(p.es. «Newsgroups:» contro "Return-Path:"). Ma se le altre non hanno
successo, dovrebbe essere ancora possibile usare la prima.
Questo programma è più lento del comando file di qualche produttore.
Questa pagina di manuale, e in particolare questa sezione, è troppo
lunga (NdT: non posso far altro che confermare :-).
DISPONIBILITÀ
È possibile ottenere l’ultima versione originale dell’autore con FTP
anonimo a ftp.astron.com nella directory /pub/file/file-X.YY.tar.gz
Coperto da copyright, ma redistribuibile FILE(1)