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.
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
file -b file.txt ASCII text
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 somefile.csv somefile.csv: Zip archive data, at least v2.0 to extract
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
To view the mime type of a file rather than the human readable format pass the
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
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)
Have an update or suggestion for this article? You can edit it here and send me a pull request.
Linux and Unix watch command tutorial with examples
Tutorial on using watch, a UNIX and Linux command for executing a program periodically and showing a fullscreen output. Examples of watching a file download, a network interface come up, and showing the five most CPU intensive processes.
Build your own Vim statusline
Statuslines in Vim are not hard to create. Making your own means one less dependency in your life.
Custom Vim Bindings in tmux 2.4
tmux 2.4 made a significant change to key bindings. Here is how to support custom keybindings for versions before and after tmux 2.4