md5deep не работает с дубликатами файлов в разных каталогах

md5deep не работает с дубликатами файлов в разных каталогах

Я хочу использовать md5deep для проверки того, что некоторые скопированные каталоги скопированы правильно. Но, похоже, md5deep не использует имена файлов, сохраненные в сгенерированных .md5-файлах при сопоставлении!

На самом деле это означает, что если я копирую большую структуру каталогов (с дублирующимися файлами) и что-то пошло не так, и один каталог содержит файлы (с правильными именами файлов, но неправильным содержимым), то 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

Как вы видите, две фотографии — это дублирующиеся файлы!

Теперь представьте, что моя утилита копирования дала сбой, так что СОДЕРЖИМОЕ 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 пользователь хотел бы найти любой файл с тем же хешем, что и EVILEVIL, даже если он был переименован в fuzzykitten.exe.

С другой стороны, программа hashdeep может проводить аудит, проверяя размер файла, его местоположение,ихэш при сопоставлении.

Связанный контент