Software & Apps Linux 54 54 people found this article helpful How to Determine the File Type of a File Using Linux Find the file type of any file or group of files with the 'file' command by Juergen Haas Writer Former Lifewire writer Juergen Haas is a software developer, data scientist, and a fan of the Linux operating system. our editorial process Juergen Haas Updated on June 27, 2020 reviewed by Chris Selph Lifewire Tech Review Board Member Chris Selph is a CompTIA-certified technology and vocational IT teacher. He also serves as network & server administrator and performs computer maintenance and repair for numerous clients. our review board Article reviewed on May 17, 2020 Chris Selph Linux Switching from Windows Tweet Share Email Most people look at the extension of a file and then guess the type of file from that extension. For example, when you see a file with an extension of gif, jpg, bmp, or png you think of an image file, and when you see a file with an extension of zip, you assume the file has been compressed using a zip compression utility. A file can use one extension but be something altogether different. Linux doesn't use file extensions; rather, the file's type is part of the file name. To find out the true file type use the file command. How the 'file' Command Works The file command runs three sets of tests against a file: Filesystem testsMagic testsLanguage tests The first set of tests to return a valid response prompts the file type to be printed. Filesystem tests examine the return from a stat system call. The program checks to see if the file is empty and whether it is a special file. If the file type is found in the system header file, it is returned as the valid file type. The magic tests check the contents of a file and specifically a few bytes at the beginning that help to determine the file type. Various files are used to help match up a file with its file type, and these are stored in: /etc/magic/usr/share/misc/magic.mgc/usr/share/misc/magic Override these files by placing a file in your home folder called $HOME/.magic.mgc or $HOME/.magic. The final tests are language tests. The file is checked to see if it is a text file. By testing the first few bytes of a file, the test deduces whether the file is an ASCII, UTF-8, UTF-16, or another format that identifies the file as a text file. When the character set is deduced, the file is tested against different languages. How to Use the 'file' Command The file command takes the following form: For example, to check the type of a file title touch.svg, execute the following command: The output is something like this: touch.svg: SVG Scalable Vector Graphics image Different file types produce different results, for example: ODS file type: OpenDocument SpreadsheetPDF file type: PDF Document, version 1.4CSV file type: ASCII text, with very long lines, with CRLF line indicators Handling Multiple Files By default, the file command works with a single file. You can, however, specify a filename that contains a list of files to be processed by the file command. For example, open a file called testfiles using the nano editor and add these lines to it: /etc/passwd/etc/pam.conf/etc/opt Save the file and run the following file command: The output will be something like this: /etc/passwd: ASCII text/etc/pam.conf: ASCII text/etc/opt: directory Another method is to run the file command once, but specifying several targets. For example: file /etc/passwd /etc/pam.conf /etc/opt The output will be something like this: /etc/passwd: ASCII text/etc/pam.conf: ASCII text/etc/opt: directory Standard wildcards work, too. For example, to test all files in the present working directory, use: file * To test for directories that start with the letter D (case sensitive) try this: file D* The results could be Desktop, Documents, and Downloads, for example. Compressed Files When you run the file command against a compressed file you see output something like this: file.zip: ZIP archive data, at least V2.0 to extract While this result tells you that the file is an archive file, you don't know the contents of the file. Look inside the zip file to see the file types of the files within the compressed file. The following command runs the file command against the files inside a ZIP file: The output now shows the file types of files in the archive.