file /usr/bin/file
たとえば、システムの出力に「バイナリ」という単語が含まれていません。 file -i
の場合 利用可能ですが、「バイナリ」という単語が含まれています。 -i
なし 、単語「テキスト」の存在をテストする方が信頼性が高い場合があります.
find -type f -exec sh -c "file {} | grep text >/dev/null" \; -print
または
find -type f -exec sh -c "file {} | grep text >/dev/null" \; -ls
-i
の使用 :
find -type f -exec sh -c "file -i {} | grep -v binary >/dev/null" \; -print
file
の使用 ファイルの種類を決定するためにヒューリスティックを使用しており、「バイナリ」ファイルを構成するものについての厳格な定義がないため、近似値にすぎません。空のファイルは「バイナリ」ですか? file
だと言います。また、file
までに偽陽性 ID をトリガーする (通常はまれな) 方法がたくさんあります。 .
もう 1 つの方法は、ユーザー、グループ、またはその他のいずれかに設定された実行権限を持つすべてのファイルを除外することです:
find . -type f ! -perm /u=x,g=x,o=x
(バイナリが実行権限に等しい場合...)