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.
Using HashiCorp Vault with LDAP
How to use HashiCorp Vault to setup an LDAP backed secret store with read-only access for users in groups and read-write access for specific users
Linux and Unix xargs command tutorial with examples
Tutorial on using xargs, a UNIX and Linux command for building and executing command lines from standard input. Examples of cutting by character, byte position, cutting based on delimiter and how to modify the output delimiter.
Copy a file in Go
How to copy a file in Go. The ioutil package does not offer a shorthand way of copying a file. Instead the os package should be used.