
Я хотел бы узнать, имеют ли две папки одинаковое содержимое 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 только при необходимости.