File (UNIX)
Single UNIX Specification(SUS)では、コマンドラインの引数で指定されたファイルに対して以下の一連のテストが実行されることを規定している。
ファイルを読み取ることができない場合、またはそのUNIXファイルタイプが未決定の場合、fileプログラムは、ファイルが処理されたがその種別が未決定である旨を表示する。
fileは、ディレクトリ、名前付きパイプ(FIFO)、ソケット、ブロックデバイスファイル、キャラクタデバイスファイルの種別を判別する。
長さゼロのファイルはそのように識別される。
fileは、ファイルの冒頭部分を考慮して、位置依存テストを実施する。
fileは、ファイル全体を考慮して、状況依存テストを実施する。
上記のいずれのテストでも識別できなかった場合、ファイルはデータファイルとして識別される。
fileの位置依存テストは、通常、ファイル内の様々な場所をマジックナンバーのテキストデータベースと照合することで実装される(#使用方法を参照)。これは、拡張子やMIMEなどといった他の簡単なファイル種別識別法とは異なる。
ほとんどの実装では、fileコマンドはデータベースを使用して冒頭部の解析を実施する。そのデータベースは、magicというファイルに格納されている。このファイルは、通常/etc/magicや/usr/share/file/magicなどに置かれている。