回答:
次のコマンドでファイルのエンコーディングを確認できます。
file -bi filename
file -I filename
(-Iは大文字のiです)。
find -type f -exec isutf8 {} +
ファイル名も引用符で囲んでいるので、でうまく動作します。(そして使用するfind ... -exec ... +
と高速でもあります)
file
コマンドは使用しないでください。ファイル全体を検査するのではなく、基本的に推測します。それは時々間違った答えを出します。
ファイルが次のようなUTF-8エンコーディングを渡しているかどうかを確認できます。
$ iconv -f utf8 <filename> -t utf8 -o /dev/null
ゼロの戻りコードは、UTF8を渡すことを意味します。ゼロ以外の戻りコードは、有効なUTF8ではないことを意味します。
一部のエンコード方式が重複しているため、特定のエンコード方式を使用してファイルをエクスポートする必要があるかどうかを知ることはできません。これを行うには、メタデータをファイルに埋め込む必要があり、その場合でも、自分で検証するのではなく、そのファイルを生成した人に信頼を置くことになります。そして、常に自分で検証する必要があります。
file
スマートな推測を行うプログラムの例です。