Linuxコマンド file(ファイルの種類を判定する)
形式が不明なファイルの種類を確認するfileコマンドについて解説。
RHEL Fedora CentOS Vine Deblan Ubuntu Plamo
参考サイト:Man page of INSTALL
使用方法
Linuxでは拡張子がないファイルがあるため、ファイルの中身が何か開かないとわからない。その時、fileコマンドを使用することによりテキストファイルなのかバイナリファイルなのかがファイルを開かなくても調べることができる。
fileコマンドは、引数にファイルを指定します。指定されたファイルを解析しファイルタイプを表示します。ファイルシステム検査、マジックナンバー検査、マジック定義ファイル(/usr/share/misc/misc/magic.mgc)を参照する検査です。表示可能な文字列が含まれている場合は、「text」が表示されます。実行可能なプログラミングである場合は、「executable」が表示されます。その他のタイプ場合は「data」が表示されます。スクリプトである場合は、インタプリタ名とスクリプトであることが表示されます。
書式
$ file [オプション] ファイル名
オプション
-b, –brief | 出力の最初にファイル名を表示しない |
-F, –separator | 結果出力のファイル名とタイプの間に入れる文字を指定する(デフォルトは「:」) |
-i, –mine | MIMEタイプ文字列を表示する |
-k, –keep-going | 最初にマッチしたものだけでなく最後までテストする |
-L, –dereference | シンボリックリンクの場合は元ファイルをテストする |
-s, –special-files | 特殊ファイル(デバイスファイルやキャラクタファイル)を読み込んだときに異常な表示をさせない。通常file(1)はstat(1)でファイルを読み込むが、このオプションを利用する場合は、stat(1)が返すファイルサイズを無視する。 |
-z, –compress | 圧縮ファイルの中身もチェックしようとする |
-O | 各ファイル名の最後にNULL文字を入れる。 |
サンプル
$ file sample.txt
実行結果
[centos@ work]$ ls -l
total 4
-rw-rw-r-- 1 centos centos 7 Apr 1 00:00 sample.txt
[centos@ work]$ file sample.txt
sample.txt: ASCII text
[centos@ work]$
ファイルの種類をMIMEタイプで表示
サンプル
$ file -i sample.txt
実行結果
[centos@ ~]$ file -i sample1.txt
sample1.txt: text/plain; charset=us-ascii
[centos@ ~]$
ファイルのMIMEタイプを表示
サンプル
$ file *
実行結果
[centos@ jdk1.8.0]$ file *
bin: directory
COPYRIGHT: ISO-8859 text
db: directory
include: directory
javafx-src.zip: Zip archive data, at least v1.0 to extract
jre: directory
lib: directory
LICENSE: ASCII text
man: directory
README.html: HTML document, ASCII text
release: ASCII text, with very long lines
src.zip: Zip archive data, at least v2.0 to extract
THIRDPARTYLICENSEREADME-JAVAFX.txt: UTF-8 Unicode (with BOM) text, with very long lines
THIRDPARTYLICENSEREADME.txt: UTF-8 Unicode text