Hai visto i comandi per creare file in Linux. Hai anche visto il comando per eliminare il file in Linux. Parliamo del comando file in questo articolo.
Cos'è il comando file in Linux e Unix?
Come si riconosce il tipo di un file? Fammi indovinare, per estensione, giusto? Voglio dire, se vedi un file chiamato MyData.csv, supponi che il file sia in formato CSV.
Ma le estensioni dei file in Linux e Unix non hanno un vero significato. Puoi nominare un file CSV, un file zip. Puoi scegliere di non utilizzare alcuna estensione.
Il comando file è utile in tali situazioni. Il comando file in Linux determina il tipo effettivo di un file, indipendentemente dalla sua estensione.
Ha una sintassi semplice con poche opzioni:
file [option] filename Ora che conosci la sintassi, vediamo come utilizzare il comando file.
Esempio di comando file in Linux
Nella sua forma più semplice, puoi usare il comando file con il nome del file o il percorso del file e mostrerà il tipo di file.
file filename Ecco un esempio:
example@unixlinux.online:~/$ file cpluplus.cpp
cpluplus.cpp: C++ source, ASCII text Vediamo altri modi in cui puoi usarlo con le sue opzioni.
Rimuovi il nome del file dall'output
Puoi utilizzare l'opzione -b e l'output mostrerà solo il tipo di file omettendo il nome del file. Potrebbe essere utile negli script.
file -b filename Dai un'occhiata allo stesso esempio che hai visto prima:
example@unixlinux.online:~/$ file -b cpluplus.cpp
C++ source, ASCII text Ottieni il tipo mime del file
Puoi anche visualizzare il tipo MIME del file grazie a -i opzione.
file -i filename Ecco un esempio del comando su un file video, con e senza informazioni sul tipo MIME:
example@unixlinux.online:~/$ file my_video.mp4
my_video.mp4: ISO Media, MP4 v2 [ISO 14496-14]
example@unixlinux.online:~/$ file -i my_video.mp4
my_video.mp4: video/mp4; charset=binary Puoi combinare le opzioni -be -i.
Ottieni informazioni sul tipo di file di un file all'interno di un file di archivio
Se esegui gzip una directory e ora hai un file compresso. Puoi esaminare il contenuto non compresso per decidere il tipo di file con l'opzione -z.
file -z compressed_file Lascia che ti mostri un esempio con e senza l'opzione -z:
example@unixlinux.online:~/$ file author-pro.zip
author-pro.zip: Zip archive data, at least v2.0 to extract
example@unixlinux.online:~/$ file -z author-pro.zip
author-pro.zip: PHP script, ASCII text (Zip archive data, at least v2.0 to extract) Utilizza il comando file con più file
Il comando File può essere eseguito su più file contemporaneamente.
file file1 file2 file3 Ecco un esempio per te in modo che tu possa vederlo in azione:
example@unixlinux.online:~/$ file cpluplus.cpp agatha.txt bash_script.sh
cpluplus.cpp: C++ source, ASCII textagatha.txt: ASCII text
bash_script.sh: Bourne-Again shell script, ASCII text executable Usa il comando file con regex
Se desideri utilizzare il comando file su più file, non devi sempre fornire tutti i nomi dei file. Puoi invece usare regex.
Dipende davvero dalle tue esigenze e dalla tua immaginazione come potresti usarlo. Mostrerò comunque alcuni esempi.
Se vuoi visualizzare il tipo di file di tutti i file nella directory corrente, usa semplicemente questo:
file * Se vuoi visualizzare il tipo di file di tutti i file con una determinata estensione, puoi farlo anche tu:
file *.txt Le possibilità sono infinite. Vuoi visualizzare il tipo di file di file con nome che inizia con 'a'? Usa questo:
file [a]* Altre opzioni che puoi utilizzare con il comando file
Ecco alcune altre opzioni con il comando file che puoi utilizzare:
- -L :Segui i collegamenti simbolici e segnala il tipo di file di destinazione
- -f nome_file :legge i nomi dei file riga per riga dal nome_file specificato e segnala il tipo di file
Ci sono anche alcune altre opzioni, ma credo che tu abbia imparato tutti gli esempi essenziali del comando file Linux. Se hai domande o suggerimenti, fammi sapere nella sezione commenti.