なんだこれは

はてなダイアリーから移転しました。

大量のファイルの同一性の確認

Aディレクトリ以下のファイルを A' ディレクトリに コピーしたときに、ちゃんとコピーできたかを確認する方法。

例えば cp -R A tmp/A とコピーしたとする。

ここでは md5 ハッシュを使ってみる。

find A -type f -exec md5sum {} \; > md5.txt

これで

md5 ハッシュのテキストが入手できる

たとえばこのようなmd5ハッシュとファイル名のリストが手にはいる。

0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef A/file1.txt
0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef A/file2.txt
0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef A/file3.txt

これを サーバー等の移動先(ここではtmp)にコピーする。

移動先でチェックできる。

md5sum -c md5.txt
A/file1.txt 完了
A/file2.txt 完了
A/file3.txt 完了

完了がいやな場合 LANG=C md5sum -c md5.txt で試すこと。

また、ハッシュは衝突が発生する可能性があるので、二種類以上のハッシュで確認すると確実である。

sha512sum などを併用する。