web-dev-qa-db-ja.com

md5deepが異なるディレクトリにある重複ファイルを処理しない

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 -r c:\ 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-generator/comparerを探し始める必要がありますか?

3
SanSaurus

これはmd5deepの機能であり、バグではありません。コンパニオンプログラムhashdeepを使用したいようです。そのプログラムにはmd5deepが付属しています。

md5deepは、ファイル名に関係なくファイルを検索することを目的としていました。たとえば、ルートキットEVILEVIL.EXEを検索する場合、fuzzykitten.exeに名前が変更されていても、ユーザーはEVILEVILと同じハッシュを持つファイルを検索する必要があります。

一方、hashdeepプログラムは、ファイルサイズ、場所、およびハッシュを照合するときにチェックする監査を実行できます。

4
Jesse Kornblum