ファイルのMIMEタイプを一覧で取得する

UNIXコマンド(*)でファイルのMIMEタイプを一覧で取得したい。

*:Windows環境の場合、Git bash等をインストールしておく。

事前にファイル数はカウントして確認したほうが良い。

find . -type f | wc -l

以下がコマンド。

for name in $(find . -type f); do
file --mime-type ${name} >> hoge.log
done

findコマンドで取得したファイルパスに対して、fileコマンド(mime-typeオプションを付けた)を実行。リダイレクションでhoge.logファイルに追記出力する。

実行結果。

git bashでコマンドを実行
昔入れたAndoroidのサンプルプロジェクトのディレクトリで試す。

出力ファイルの内容。

コマンドの実行結果
これは間違っていた。追記参照。

fileコマンドが1ファイルずつテストを繰り返すので結構時間がかかる。他に良い方法はないだろうか?

[5/12追記]

ファイル名にスペースが含まれていると失敗(cannot open 〜 No such file or directory)した。

こちらを参考に修正。

find . -type f -name '*' | while read file_name
do
file --mime-type "${file_name}" >> hoge.log
done
タイトルとURLをコピーしました