Provided by: manpages-it_0.3.4-5_all bug

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 DAMBIENTE
       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)