
Recuva のようなデータ復旧プログラムを使用すると、ランダムなデータが入っているだけで使用できないファイルでも、ファイル名は正しいものなど、多数のファイルを「復旧」できます。これらのファイルや、意味のあるデータが入っているが修復が必要なファイルを自動的に検出し、残りのジャンク ファイルを削除する方法はありますか?
答え1
Linux では、このユーティリティはfile
検討する価値があるかもしれません。ファイル名の拡張子に頼るのではなく、3 種類の異なるテストを使用して、渡された各ファイルを「テスト」します。(man file
さまざまなテストの説明については、を参照してください)。
ディレクトリ内のすべてのファイルをテストし、JPEG 画像の場合は新しいフォルダーにコピーする方法を次に示します。
#!/bin/bash
mkdir useful
for cfile in *; do
fileres=$(file -b --mime-type "${cfile}")
if [[ "${fileres}" == "image/jpeg" ]]; then
cp "${cfile}" "useful/"
fi
done
復元したファイルがすべて保存されているディレクトリでこのスクリプトを実行すると、jpeg ファイルのみがディレクトリにコピーされます。他のファイルタイプを探している場合は、スクリプト内の を、目的のファイルの MIME タイプにuseful
置き換えるだけです。image/jpeg