Introduzione
Il file
di Linux comando aiuta a determinare il tipo di un file e i suoi dati. Il comando non tiene conto dell'estensione del file ed esegue invece una serie di test per scoprire il tipo di dati del file.
In questo tutorial, ti mostreremo come utilizzare il file
il comando funziona e come usarlo.
Prerequisiti
- Un sistema che esegue Linux.
- Accesso alla finestra del terminale.
Sintassi comando file
Il file
comando utilizza la seguente sintassi di base:
file [option] [file name]
Nella sintassi sopra, file name
rappresenta il nome del file che si desidera testare. Il file
comando esegue tre serie di test cercando di determinare il tipo di file, in questo ordine:
- Test del file system eseguire una chiamata di sistema stat(2) e verificare il risultato rispetto al file di intestazione del sistema. In questo modo, il
file
comando determina se il file è un tipo comune per il tuo sistema (come un file di testo, un'immagine, una directory, ecc.). - Prove di magia utilizzare una breve stringa di numeri archiviata vicino all'inizio del file ("numero magico") per verificare se il file è un eseguibile binario e, in tal caso, determinarne il tipo. Le informazioni necessarie per eseguire questi test sono archiviate in /etc/magic o /usr/share/misc/magic da un file magic compilato.
- Test linguistici usa un tag speciale per determinare in quale linguaggio di programmazione è scritto un file eseguibile binario.
L'output del comando fornisce una breve descrizione del file e del tipo di dati. Ad esempio, utilizzando il file
comando per testare un file di testo:
file example.txt
Opzioni comando file
Il file
comando utilizza le seguenti opzioni:
Opzione | Descrizione |
---|---|
--apple | Modifica l'output del comando con quello utilizzato dalle versioni precedenti di MacOS. |
-b, --brief | Modifica l'output del comando in modalità breve. |
-C, --compile | Crea un file di output che contiene una versione pre-analizzata del file o della directory magic. |
-c, --checking-printout | Controlla la stampa per la versione analizzata del file magic. |
-d | Stampa le informazioni di debug interne nel formato di errore standard. |
-E | In caso di errore del filesystem, emette un messaggio di errore ed esce. |
-e, --exclude | Esclude un test dall'elenco dei test eseguiti su un file. |
--exclude-quiet | Esclude i test che il file comando non sa. |
--extension | Stampa un elenco di estensioni valide per il tipo di file. |
-F, --separator | Utilizza la stringa fornita come separatore tra il nome del file e il tipo di file. |
-f, --files-from | Utilizza un file di testo fornito come elenco di file da testare. L'elenco deve contenere un solo nome file per riga. |
-h, --no-deference | Disabilita i seguenti collegamenti simbolici. |
-i, --mime | Modifica l'output del comando in una stringa di tipo MIME. |
--mime-type, --mime-encoding | Cambia l'output del comando in una stringa di tipo MIME e visualizza solo l'elemento specificato (tipo o codifica). |
-k, --keep-going | Mantiene il test in corso dopo la prima corrispondenza dei risultati. |
-l, --list | Mostra un elenco di modelli corrispondenti in ordine decrescente di forza. |
-L, --deference | Abilita i seguenti collegamenti simbolici. |
-m, --magic-file | Utilizza un file magico alternativo fornito dall'utente. |
-N, --no-pad | Non riempie i nomi dei file per allinearli all'output. |
-n, --no-buffer | Svuota l'output dopo aver controllato ogni file. |
-p, --preserve-date | Tentativi di preservare l'ultimo accesso al file per farlo sembrare il file comando non l'ha testato. |
-P, --parameter | Imposta vari parametri, come byte massimi o ricorsione, conteggio e limite di lunghezza. |
-r, --raw | Disabilita la traduzione dei caratteri non stampabili. |
-s, --special-files | Abilita la lettura di file speciali. |
-S, --no-sandbox | Disabilita il sandboxing sui sistemi che lo supportano. |
-v, --version | Visualizza la versione del file comando. |
-z, --uncompress | Controlla i file compressi. |
-Z, --uncompress-noreport | Controlla i file compressi e visualizza solo il tipo di file senza la compressione. |
-0, --print0 | Visualizza un carattere nullo dopo la fine del nome del file. |
--help | Visualizza il messaggio di aiuto. |
Esempi di comando file
Di seguito sono riportati esempi di casi d'uso comuni per il file
comando.
Testare più file
Per testare più file contemporaneamente, aggiungi i nomi dei file alla fine del file
comando:
file [file name 1] [file name 2] … [file name n]
Ad esempio, testare una directory, un file di testo, un'immagine e una pagina Web:
file Example example.txt sample.png index.html
Testa tutti i file in una directory
Aggiungi un carattere jolly (*
) nel file
comando per testare tutti i file e le directory nella directory di lavoro corrente:
file *
Aggiungi il percorso di una directory al carattere jolly per testare il contenuto di quella directory:
file [path to directory]/*
Ad esempio, per testare il contenuto dell'Esempio directory, utilizzare:
file Example/*
Testa i file in un intervallo
Il file
Il comando consente di testare un sottoinsieme di file in una directory utilizzando intervalli in stile Regex. Selezionare un intervallo inserendo i valori tra parentesi. Ad esempio, testare file e directory con nomi nell'intervallo a-l:
file [a-l]*
Poiché gli intervalli in stile Regex fanno distinzione tra maiuscole e minuscole, l'output nell'esempio sopra mostra solo i tipi di file per i file che iniziano con a-l minuscolo. L'aggiunta di un altro intervallo ti consente di includere anche caratteri maiuscoli:
file [a-l]* [A-L]*
Testare i file da un elenco
Il file
comando consente di utilizzare un file di testo come elenco di file da testare. Il file di testo deve contenere un solo nome file per riga.
Usa il -f
opzione e aggiungi il percorso del file elenco a file
comando:
file -f list.txt
Test di file speciali
Il file
comando non è sempre in grado di leggere file speciali, come i file di sistema:
file /dev/sda5
Nell'esempio sopra, l'output del comando file mostra che /dev/sda5 è un file speciale di blocco ma non offre dettagli aggiuntivi. Usando il -s
l'opzione ti consente di testare completamente file speciali:
sudo file -s /dev/sda5
Test dei file compressi
Usa il -z
opzione per testare completamente i file compressi, cercando di rilevarne il contenuto:
file -z install.tar.gz
Verifica la versione analizzata del file
Usando il -c
l'opzione visualizza la stampa di controllo per la versione analizzata del file:
file -c example.txt
Questa opzione viene solitamente utilizzata con il -m
opzione per eseguire il debug e installare un nuovo file magic.
Visualizza breve output
Utilizzando il -b
l'opzione visualizza la versione breve dell'output. Questa versione dell'output mostra solo i tipi di file e omette i nomi dei file.
file -b Example example.txt sample.png index.html
Aggiungi separatori all'output
Usando il -F
l'opzione consente di definire un carattere che funge da separatore tra il nome del file e le sezioni del tipo di file dell'output. Ad esempio, aggiungi un segno più (+
) come separatore con:
file -F + Example example.txt sample.png index.html
Rimuovi il riempimento del nome file dall'output
Usa il -N
opzione per rimuovere il riempimento tra il nome del file e le sezioni del tipo di file dell'output:
file -N Example example.txt sample.png index.html
L'output risultante non è più allineato verticalmente: