ファイルの MIME type を確認したい
ファイルのMIME typeをコマンドラインで確認したい場合、file コマンドを使う。
file -i で MIME type を確認する(Linux)
Linuxでは file -i でファイルのMIME typeと文字エンコーディングを確認できる。
$ file -i /etc/hosts
/etc/hosts: text/plain; charset=us-ascii
バイナリファイルの場合は charset=binary と表示される。
$ file -i /bin/ls
/bin/ls: application/x-pie-executable; charset=binary
ファイル名を出力に含めたくない場合は -b オプションを組み合わせる。
$ file -b -i /etc/hosts
text/plain; charset=us-ascii
MIME type のみを取得する
charsetを含まずMIME typeだけ取得したい場合は --mime-type オプションを使う。
$ file --mime-type /etc/hosts
/etc/hosts: text/plain
ファイル名なしで取得する場合は -b と組み合わせる。スクリプトで変数に代入する場合などに便利。
$ file -b --mime-type /etc/hosts
text/plain
macOS との違い
macOSでは -i オプションの意味が異なる。file -i はファイルの種類を表示するが、MIME typeは表示されない。
# macOS での file -i の結果
$ file -i /etc/hosts
/etc/hosts: regular file
macOSでMIME typeを取得するには -I(大文字)または --mime-type を使う。
# macOS での MIME type 取得
$ file -I /etc/hosts
/etc/hosts: text/plain; charset=us-ascii
$ file --mime-type /etc/hosts
/etc/hosts: text/plain
--mime-type はLinux・macOSの両方で同じ動作をするため、クロスプラットフォームで使いたい場合は --mime-type を使うとよい。
\第一線のプログラマーの行動原理を学べる!/
