file コマンドは、指定したファイルの内容を解析し、その 種類(テキストファイル、実行ファイル、画像ファイルなど) を判定するコマンドです。
実務では、拡張子に依存せずファイル形式を確認したり、不明なファイルの中身を特定する際に利用されます。
構文(Syntax)
file [オプション] [FILE...]
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
| (なし) | ファイルの種類を判定 | file document.txt |
-i | MIME タイプを表示 | file -i image.png |
-b | ファイル名を表示せず種類だけ出力 | file -b document.txt |
-z | 圧縮ファイルを展開して中身を判定 | file -z archive.gz |
-f FILE | 指定ファイル内に列挙された複数ファイルをまとめて判定 | file -f filelist.txt |
-L | シンボリックリンクを辿って判定 | file -L linkfile |
-s | 特殊ファイル(デバイスファイルなど)の内容を表示 | file -s /dev/sda |
実行例
テキストファイルを判定
file document.txt
出力例:
document.txt: ASCII text
バイナリファイルを判定
file program
出力例:
program: ELF 64-bit LSB executable, x86-64, dynamically linked, ...
MIMEタイプを表示
file -i image.png
出力例:
image.png: image/png; charset=binary
ファイル名を表示せず種類のみ出力
file -b document.txt
出力例:
ASCII text
圧縮ファイルの中身を判定
file -z archive.gz
出力例:
archive.gz: gzip compressed data, was "data.txt", last modified: Thu Aug 21 10:00:00 2025
複数ファイルを一度に判定
file file1.txt file2.jpg
出力例:
file1.txt: UTF-8 Unicode text
file2.jpg: JPEG image data, Exif standard
エラー例(存在しないファイルを指定)
file missing.txt
出力例:
missing.txt: cannot open (No such file or directory)
関連コマンド
stat: ファイルの詳細情報(サイズ・更新日時など)を表示ls -l: ファイルの属性を表示strings: バイナリファイルから文字列を抽出hexdump: ファイル内容を16進数で表示
備考
fileコマンドは マジックナンバー(ファイル先頭の識別子)や文字コード解析によって種類を判定します。- 拡張子に依存せず、中身を解析して種類を特定するため信頼性が高いです。
- 圧縮ファイルやアーカイブもある程度中身を判別可能です。
参考
- manページ: man7.org file(1)
fileコマンド公式: https://www.darwinsys.com/file/

コメント