Mentre si lavora sulla riga di comando di Linux, a volte potresti incontrare un file che è un archivio (diciamo un file .zip), ma la sua estensione (o la sua mancanza) suggerirebbe il contrario. È in tempi come questi, il file comando si rivela utile in quanto consente di determinare il tipo di file effettivo.
In questo tutorial, discuteremo le basi del file comando utilizzando alcuni esempi di facile comprensione. Ma prima di farlo, vale la pena ricordare che tutti gli esempi qui menzionati sono stati testati su una macchina Ubuntu 18.04 LTS.
Comando file Linux
Come già accennato all'inizio, il comando file in Linux ti consente di vedere il tipo di file con cui hai a che fare. Di seguito è riportata la sua sintassi:
file [OPTIONS] file1 file2 ....
Ed ecco come lo spiega la pagina man dello strumento:
Il filefile tests each argument in an attempt to classify it. There are three
sets of tests, performed in this order: filesystem tests, magic tests,
and language tests. The first test that succeeds causes the file type to
be printed.
The type printed will usually contain one of the words text (the file
contains only printing characters and a few common control characters and
is probably safe to read on an ASCII terminal), executable (the file con?
tains the result of compiling a program in a form understandable to some
UNIX kernel or another), or data meaning anything else (data is usually
“binary” or non-printable). Exceptions are well-known file formats (core
files, tar archives) that are known to contain binary data. When adding
local definitions to /etc/magic, make sure to preserve these keywords.
Users depend on knowing that all the readable files in a directory have
the word “text” printed. Don't do as Berkeley did and change “shell
commands text” to “shell script”.
Di seguito sono riportati alcuni esempi in stile domande e risposte che dovrebbero darti un'idea migliore di come funziona il comando file.
Q1. Come utilizzare il comando file?
Semplice, esegui semplicemente 'file' con un nome file come input. Ad esempio:
file test
Poiché 'test' è una directory sul mio sistema, il comando file mi ha detto proprio questo. Ecco l'output che ha prodotto:
test: directory
Q2. Come testare più file?
Anche questo è abbastanza semplice. Basta passare il nome dei file come input, in modo simile all'esempio precedente.
Ecco un esempio:
file test test.txt .local
Ed ecco l'output prodotto da questo comando:
test: directory
test.txt: ASCII text
.local: directory
T3. Come fare in modo che il file mostri solo il tipo in output?
Come puoi vedere nell'output del comando file finora, l'output contiene due cose:il nome del file e il suo tipo. Tuttavia, se vuoi, puoi creare file per produrre solo il tipo in output. Questo può essere fatto usando l'opzione della riga di comando -b.
Ad esempio, il comando seguente:
file -b test
prodotto il seguente output sul mio sistema:
directory
Q4. Come vedere il tipo di file MIME?
Per visualizzare il tipo MIME per un file, utilizzare l'opzione della riga di comando -i. Ecco un esempio:
Q5. Come modificare il separatore in output?
Come discusso in precedenza, in modalità predefinita, il comando file produce in output un nome file seguito dal suo tipo. Entrambi questi dettagli sono separati da due punti (:). Tuttavia, se lo desideri, puoi modificare questo separatore utilizzando l'opzione della riga di comando -F.
Ad esempio:
file -F " +" test
ha prodotto il seguente output:
test + directory
Conclusione
Per concludere, il file è uno strumento importante da avere nel tuo gattino. Abbiamo appena scalfito la superficie qui poiché lo strumento offre molte più funzionalità in termini di opzioni della riga di comando. Una volta che hai finito con tutto ciò di cui abbiamo discusso qui, puoi andare alla pagina man del comando file per saperne di più.