While file extensions in Linux are optional and often misleading, the file
command helps decode what a file truly is. This powerful utility analyzes the actual content, not just the name, and offers a reliable description, vital for system admins, developers, and anyone working with unknown or mixed file types.
What Does file Do?
- Examines file headers and content to determine data type.
- Provides human-readable descriptions of file format.
- Identifies text vs. binary, images, scripts, archives, and more—no guessing from the extension required!
Basic Syntax
file [options] filename
Replace filename
with the file to analyze.
Practical Examples
1. Identify File Types
file music_track
Returns “MP3 audio file” (or “ASCII text” if it’s actually just text, regardless of its .mp3
extension).
2. Examine Multiple Files at Once
file *.jpg
Instantly reveals which among your *.jpg
files are actual images or just misnamed files.
3. Analyze Files in Subdirectories
file ~/Documents/backup*
Shows what types of backups you actually have (compressed, database dumps, raw text, etc.).
4. Check Scripts or Executables
file install.sh
Output might show “Bourne-Again shell script,” or “ELF 64-bit LSB executable” for compiled binaries.
Important file Command Flags
Option | Function |
---|---|
-b | Hide file name in output |
-i | Show MIME type instead of English descriptor |
-L | Follow symbolic links |
-z | Look inside compressed files |
Why Use file?
- Critical for verifying downloads or email attachments before opening.
- Saves time when working with files missing or using confusing extensions.
- Reduces errors in automated workflows and scripts by programmatically confirming file type.
Read More: History of Linux