
md5deep を使用して、コピーされたディレクトリが正しくコピーされているかどうかを確認したいのですが、md5deep は、マッチング時に生成された .md5 ファイルに保存されているファイル名を使用しないようです。
これは実際には、大きなディレクトリ構造 (重複ファイルを含む) をコピーして何か問題が発生し、1 つのディレクトリにファイル (ファイル名は正しいが内容が間違っている) が含まれる場合、md5deep はこれを不一致として検出しないことを意味します。
例:
次のようなファイル構造があるとします。
photos\public_photo1.jpg
photos\public_photo2.jpg
photos\private_photo1.jpg
photos\photos_my_mother_can_see\public_photo1.jpg
photos\photos_my_mother_can_see\public_photo2.jpg
ご覧のとおり、写真のうち 2 枚は重複したファイルです。
ここで、コピー ユーティリティが失敗し、 のコンテンツがpublic_photo1.jpg
実際には のコンテンツになったと想像してくださいprivate_photo1.jpg
。ディレクトリ構造は依然として同じです。
ソース ドライブで MD5 ファイルを生成するために次の操作を実行しました。
md5deep64 -rel c:\photos\*.* > result.md5
(相対パスを使用します!)
その後、ファイルを宛先フォルダーと一致させます。
md5deep64 -X result.md5 -r c:\photosdest
変更は見つかりませんでした!!
一致を実行すると (md5deep64 -wm result.md5 -rc:\photosdest)、比較にファイル名が使用されていないことがわかります。
c:\photosdest\photos_my_mother_can_see\public_photo1.jpg matched c:\photos\private_photo1.jpg
c:\photosdest\public_photo1.jpg matched c:\photos\photos_my_mother_can_see\public_photo1.jpg
c:\photosdest\public_photo2.jpg matched c:\photos\public_photo2.jpg
c:\photosdest\photos_my_mother_can_see\public_photo2.jpg matched c:\photos\public_photo2.jpg
c:\photosdest\private_photo1.jpg matched c:\photos\private_photo1.jpg
:-(
それは機能ですか、それともバグですか?
md5deep に、同じファイル名と場所のファイルの MD5 を比較させる方法はありますか? ... それとも、別の md5 ジェネレーター/比較ツールを探す必要がありますか?
答え1
これは md5deep の機能であり、バグではありません。コンパニオン プログラム hashdeep を使用する必要があるようです。このプログラムは md5deep に付属しています。
md5deep は、ファイル名に関係なくファイルを検索することを目的としています。たとえば、ルートキット EVILEVIL.EXE を検索する場合、ユーザーは、名前が fuzzykitten.exe に変更されていたとしても、EVILEVIL と同じハッシュを持つファイルを検索したいと考えるでしょう。
一方、hashdeepプログラムは、ファイルサイズ、場所、そしてマッチング時のハッシュ。