Можно ли хешировать содержимое папки в Windows, чтобы проверить его на идентичность?

Можно ли хешировать содержимое папки в Windows, чтобы проверить его на идентичность?

Я хотел бы узнать, имеют ли две папки одинаковое содержимое 1:1. Это потому, что я хотел бы проверить, являются ли копии/резервные копии моих папок согласованными.

Как мне это сделать? Как мне сравнить содержимое двух папок быстро и удобно?

решение1

Вам нужен инструмент для сравнения, который способен сравнивать папки. Я бы сказал, что самый популярный для Windows — этоWinMerge.

Если вам нужно что-то, что будет работать из командной строки, см.этот ответ.

Обновлять

Более конкретный ответ, который является почти максимально быстрым и в то же время очень гибким, — это использоватьCygwinВерсии инструментов командной строки Unix:

diff -r dir1 dir2

Если вы хотите использовать бутин, то попробуйтеКОМП:

forfiles /P %folder1Path% /S /C "cmd /c comp /a @path %folder2Path%\@file"

но предупреждаю, что это грязно. Во-первых, COMP работает только с одной папкой, поэтому вам придется самостоятельно обрабатывать рекурсию (отсюда и длинная строка). Во-вторых, он выдаст запрос после того, как будет сделано первое сравнение.

Обновление 2

Я не рекомендуюделая этопотому что это будет быстрее только в определенных ситуациях. Это также будет неправильно в других. Поскольку вы запросили более быструю версию, вы также можете сравнить только контрольную сумму md5 файлов. Вы будете использовать Cygwin для этого:

diff <(sort <(md5deep -r /directory/1/) |cut -f1 -d' ') <(sort <(md5deep -r /directory/2/) |cut -f1 -d' ')

Это принесет только сомнительную пользу, поскольку в любом случае это будет запущено на хост-машине, так что мы не экономим пропускную способность. Это увеличит использование ЦП. Если вы разобьете это, то сможете создавать md5 для файлов только при сохранении и выполнять часть dif только при необходимости.

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