Last updated

Linux and Unix file command tutorial with examples

Tutorial on using file, a UNIX and Linux command for determining file types. Examples of a single file, multiple files, viewing mime types and compressed files.

Estimated reading time: 2 minutes

Table of contents

Terminal showing file man page

What is the file command in UNIX?

The file command determines the file type of a file. It reports the file type in human readable format (e.g. ‘ASCII text’) or MIME type (e.g. ‘text/plain; charset=us-ascii’). As filenames in UNIX can be entirely independent of file type file can be a useful command to determine how to view or work with a file.

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)

Further reading

Have an update or suggestion for this article? You can edit it here and send me a pull request.

Tags

Recent Posts