事前にファイル数はカウントして確認したほうが良い。
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ファイルに追記出力する。
実行結果。
出力ファイルの内容。
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