file ファイル

英語表記file

日本語表記ファイル種別判定

正式名称file

危険度安全

What does it mean?

ファイルの内容を調べ、テキスト、実行形式、圧縮形式、画像などの種別を推定します。名前や拡張子に頼れない場面で特に有効です。

Command Quest

file を今日の道具にする

ファイルの内容を調べ、テキスト、実行形式、圧縮形式、画像など...

$ file [オプション]... ファイル...
関連用語22
次のコマンド0
FAQ2
参照4

概要

ファイルの内容を調べ、テキスト、実行形式、圧縮形式、画像などの種別を推定します。名前や拡張子に頼れない場面で特に有効です。

基本構文

file [オプション]... ファイル...

詳細解説

fileは、対象ファイルの中身や属性を調べて種類を推定するコマンドです。単に拡張子を見るのではなく、既知の判定規則と照合して「ASCIIテキスト」「ELF実行形式」「gzip圧縮データ」のように説明してくれます。正体不明のファイルや、名前だけでは区別できない成果物の確認に向いています。

実務では、受け取ったファイルの中身確認、壊れたアーカイブの切り分け、実行ファイルや共有ライブラリの識別、文字コードやバイナリ混入の確認などに使います。障害対応では、まずfileで正体を把握し、その後に適切な道具へつなぐ流れがとても強力です。

ただしfileは「推定」であり、完全な保証ではありません。独自形式、途中破損、暗号化済みデータ、断片だけのファイルでは意図どおりに判定できないことがあります。結果を唯一の真実とせず、hexdumpやstrings、圧縮展開の可否などと併せて判断する姿勢が大切です。

このコマンドを使う場面

見慣れないファイルの正体を知りたい時、拡張子と中身が一致しているか確かめたい時、実行形式かテキストかを素早く見分けたい時、障害調査で破損や形式不一致を疑う時に使います。

まず安全に試す方法

1. file /etc/passwd
2. file /bin/ls
3. printf 'hello
' > sample.txt && file sample.txt
4. ln -s /etc/passwd p && file p && file -L p

通常ファイルとシンボリックリンクで結果がどう変わるかを確認してください。

3分ミッション

少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。

  1. テキスト、実行形式、圧縮ファイルに対してfileを実行し、出力の違いを比較します。

  2. fileとfile -Lで、シンボリックリンク自身と実体の判定がどう変わるか確認します。

資格試験との関連

  • LinuC レベル1
    範囲: 1.02.2 基本的なファイル管理の実行
    根拠: official
    fileは、LinuCレベル1の基本的なファイル管理を理解するうえで重要なコマンドです。
  • LPIC-1
    範囲: 103.3 基本的なファイル管理の実行
    根拠: official
    fileは、LPIC-1のファイルとディレクトリの基本操作に関わる代表的なコマンドです。
  • 共通基礎
    範囲: Linuxコマンド基礎
    根拠: editorial
    fileは、ファイル操作またはテキスト処理の基本を支えるため、試験横断の共通知識として価値があります。

オプション

  • -i
    人が読む説明ではなくMIME型を表示します。
    file -i photo.jpg
  • -b
    ファイル名を付けず、結果だけを出力します。
    file -b /bin/ls
  • -L
    シンボリックリンクの実体をたどって判定します。
    file -L current

実行結果サンプル

  • file /etc/passwd
    /etc/passwd: ASCII text
  • file /bin/ls
    /bin/ls: ELF 64-bit LSB pie executable, x86-64, ...

戻り値コード

  • 0 正常終了。判定結果を出力できました。
  • >0 対象不存在、読取不能、判定処理のエラーなどで失敗しました。

使用例

  • file /etc/passwd
  • file /bin/ls
  • file -i archive.tar.gz
  • file -L symlink

よくあるエラー

  • 拡張子が.txtだからテキストだと思い込んでいた
    原因: 名前だけで形式を判断しています。
    対処: まずfileで中身の種別を確認し、必要ならhexdumpやstringsで追加確認します。
  • リンク先ではなくリンクそのものを調べてしまった
    原因: シンボリックリンクをたどらずに判定しています。
    対処: 実体を見たい時はfile -Lを使います。

導入・互換性情報

fileはPOSIX標準の中核ユーティリティではなく、実装と判定規則データベースに依存します。環境ごとに表現や精度が少し異なるため、記事では「概ねこう判定される」と書くのが安全です。

注意点 / セキュリティリスク

危険度は低いですが、判定結果を過信するのは危険です。形式推定が誤る可能性や、実体ではなくシンボリックリンク自体を見ている可能性があるため、必要に応じて-Lや追加調査を使います。

FAQ

  • Q. fileの結果は絶対に正しいですか。
    A. いいえ。判定規則に基づく推定なので、破損ファイルや独自形式では外れることがあります。
  • Q. MIME型だけを知りたい時はどうしますか。
    A. -iを使うとMIME型と文字集合の情報を得やすくなります。

関連用語

  • glibc
  • musl
  • バイナリ
  • ABI
  • build
  • linker
  • loader
  • shared library
  • ELF
  • core dump
  • compiler
  • static linking
  • object file
  • symbol table
  • debug symbol
  • C
  • C++
  • ARM
  • x86
  • x86_64
  • RISC-V
  • endian

参照リンク

関連記事