File Command in Unix

  • File command is used to determine file type.
  • The file command makes “best-guesses” about the encoding. 

How to determine the file type of a file

To determine the file type of a file pass the name of a file to the file command.The file name along with the file type will be printed to standard output.

file file.txt
file.txt: ASCII text

To show just the file type pass the -b option.

file -b file.txt
ASCII text

The file command can be useful as filenames in UNIX bear no relation to their file type. So a file called somefile.csv could actually be a zip file. This can be verified by the file command.

file somefile.csv
somefile.csv: Zip archive data, at least v2.0 to extract

How to determine the file type of multiple files

The file command can also operate on multiple files and will output a separate line to standard output for each file.

file unix-*.md
unix-cat.md:         ASCII text, with very long lines
unix-comm.md:        ASCII text, with very long lines
unix-cut.md:         UTF-8 Unicode text
unix-exit-status.md: ASCII text
unix-file.md:        ASCII text, with very long lines

How to view the mime type of a file

To view the mime type of a file rather than the human readable format pass the -i option.

file -i file.txt
file.txt: text/plain; charset=us-ascii

This can be combined with the -b option to just show the mime type.

file -i -b file.txt
text/plain; charset=us-ascii

How to view compressed files without decompressing

To view compressed files without decompressing them pass the -z option. In the following example a file foo.txt.gz is a gzip compressed ASCII text file.

file -z bar.txt.gz
bar.txt.gz: ASCII text (gzip compressed data, was "bar.txt", last modified: Wed Sep  7 19:31:23 2016, from Unix)

Reference :

Leave a Comment