ディレクトリツリー上には、さまざまな種類のファイルが置かれている。そのため、バイナリファイルと気づかずにcatして画面が乱れてしまうこともある。事前にどのようなファイルなのかがわかると便利だ。
fileコマンドは指定されたファイルの種類を表示してくれる(画面4)。
USER$ file /usr/bin/* /usr/bin/GnomeScott: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), stripped /usr/bin/Mail: symbolic link to ../../bin/mail /usr/bin/Pnews: Bourne shell script text /usr/bin/Rnmail: Bourne shell script text /usr/bin/SwitchXIM: Bourne shell script text /usr/bin/X11: symbolic link to ../X11R6/bin /usr/bin/[: symbolic link to test /usr/bin/a2p: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), stripped /usr/bin/access: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), stripped /usr/bin/aclocal: perl commands text : :
画面4 fileコマンドの実行例
ただし、バイナリ形式に対してはかなり信頼できる報告をしてくれるが、テキストファイルに対しては間違いが多い。これは、fileコマンドがファイル形式を決定するのに、ファイルの先頭付近が特定のパターンになっているかどうかを調べているからである。そのため、テキストファイルのように決定的なパターンが見つからないと、うまく判断ができないのである。しかしながら、画面が乱れる恐れのあるファイルかどうかを調べるには十分だ。
なお、ファイル形式を決めるためのパターンは、/usr/share/magicファイルに記述されている。