スキャンディスクの後、「found.000」などのフォルダーにたくさんのCHKファイルがあります...
file コマンドで拡張子を確認できます。
for i in /media/Daten/found.*/*.chk ; do file $i; done
これを使用して、これらのファイルのすべてのファイル拡張子を再構築するにはどうすればよいですか?
スキャンディスクの後、「found.000」などのフォルダーにたくさんのCHKファイルがあります...
file コマンドで拡張子を確認できます。
for i in /media/Daten/found.*/*.chk ; do file $i; done
これを使用して、これらのファイルのすべてのファイル拡張子を再構築するにはどうすればよいですか?
この手法は、すべてのファイルに対して機能するわけではありません。以前はこれを使用して、データの回復を支援していました。
for i in /media/Daten/found.*/*.chk; do mv "$i" "$i".$(grep $(file -bi $i | awk '{print $1}' | sed 's/;//') /etc/mime.types | head -1 | awk '{print $2}'); done
これが機能する方法は、コマンドで MIME タイプ機能を使用してfile
から /etc/mime.types を grep し、リストの最初の拡張子を選択して、ファイルの名前をそれに変更します。
このコマンドは大量の名前変更を行い、最初に移動して後で質問するため、正しいディレクトリでこれを実行していることを 100% 確認してください。
次回は、chkdsk を使用してファイルを回復しないでください。修理できないほど損傷する可能性があります。chkdsk はデータを OM NOM NOM し、後でげっぷをします。chkdsk を実行する前に、必ず回復ソフトウェアを使用して必要なファイルを取り戻してください。
通常、ファイルの名前は .CHK であり、.chk ではありません (参考までに)。
特定のファイルの種類を回復するには、まずそこにあるものを確認してください。OS X でテスト済み:
file --mime -b /media/Daten/FOUND.*/*.CHK | sort | uniq
application/octet-stream; charset=binary
application/ogg; charset=binary
application/pdf; charset=binary
application/zip; charset=binary
audio/x-wav; charset=binary
image/jpeg; charset=binary
image/png; charset=binary
video/3gpp; charset=binary
次に、保持したいタイプについて:
mkdir /tmp/renamed
for f in /media/Daten/FOUND.*/*.CHK
do file --mime $f \
| perl -n -e \
'/^([^.]*).*(3gpp|jpeg|ogg|png|wav)/ && print "$1.CHK /tmp/renamed/$1.$2\n"' \
| xargs cp
done
これはfile --mime
(またはfile -I
、file -i
Linux では ) を使用して MIME タイプを決定し、ファイル名と MIME タイプの両方を含む行を Perl に渡します。Perl は、正規表現を使用してベース名 ( などFILE0001
) とファイル タイプ ( などjpeg
)をキャプチャします。のような行を出力しFILE0001.CHK /tmp/renamed/FILE0001.jpeg
ます。最後に、その行が に渡されcp
ます。
(\
は、次の行に 1 行のコマンドを続けます。)