Hello and welcome to this post. Today, you will learn about the file command in Linux. This basic command allows you to perform some operations on files.
What does the file command do in Linux
file is a command of the Unix family of operating systems, which allows detecting the type and format of a file (Wikipedia). Being a basic command for file analysis, it is possible to have it in all Linux distributions.
Being a bit more technical, the file command performs a series of tests to determine the type and format of a file. This is its main utility.
You may wonder if this command is useful, and the truth is that if you work a lot in the terminal, you will notice that files do not always have their extension. So many sysadmins keep it in mind for various operations.
So let’s go for it. Let’s explain the use of the command by examples.
Using the file command in Linux
The file command requires a file as the main parameter. Therefore, we need a file.
To use the file command, you just have to call it together with a file.
file [file-path]For example,
file exampleIf the file is empty, you will get a screen output similar to this one
 example: emptyIn case the file already has text in it, the output will look like this
 example: ASCII textIf you want the file name not to be displayed in the output, then you have to add the -b option.
file -b exampleOutput:
ASCII textIf we are going to use the file command, it is because the file has no extension. In this case, you should use the --mime-type option.
For example,
file --mime-type /etc/apt/sources.listOutput:
/etc/apt/sources.list: text/plainIf you work a lot with text files, then the --mime-encoding option will be very useful because with it, you can find out the character encoding.
file --mime-encoding [file]Now, usually you work a lot with compressed files, if they are not password protected, you can have --file scan inside.
file -z example.zipThe file command leaves traces on the access date of the file. If you want to prevent this, then use the -p option.
file -p exampleRemember, as with many commands in Linux, you can mix several options to get more accurate results.
If you want to parse many files at once, you can add them all into one file and have file read them from there.
Example,
nano files.txtNext, set some files and their paths.
/etc/fstab
/etc/hosts
/home/user/hello.txtNow to scan these three files at once, you can run
file -f files.txtThen the file command will read each of the files in this text file. Ideal if there are many files to scan.
Finally, we can parse many files at once by using wildcards. For example, to scan all files in a directory.
file *Or only text files:
file *.txtOr files starting with a range of letters. Example
file [a-d]*Finally, if you want to know more about this command, I recommend you to take a look at the command’s help.
file --helpConclusion
This command allows you to analyze various files to find out what their extension is. This makes it an important tool for many people who work a lot in the terminal.
