file command

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

OptionFunction
-bHide file name in output
-iShow MIME type instead of English descriptor
-LFollow symbolic links
-zLook 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