Я обычно использую rsyncдля этой задачи:
rsync -nav --delete DIR1/ DIR2
БУДЬТЕ ОЧЕНЬ ОСТОРОЖНЫ, чтобы всегда использоватьопцию-n, aka--dry-run, или она будет синхронизировать (изменять содержимое) каталогов.
При этом файлы будут сравниваться по времени и размеру файла ... Я думаю , это то, что вы действительно хотите, или, по крайней мере, вы не против, если это так? У меня есть ощущение, что вы просто хотите, чтобы это происходило быстрее , а не для того, чтобы игнорировать разницу между содержимым файлов. Если вы хотите, чтобы в нем не отображались разные файлы с одинаковыми именами, я думаю, что добавление --ignore-existingопции сделает это.
Также следует помнить , что не вводя /в конце DIR1заставит его сравнить каталог DIR1 с содержанием в DIR2.
Вывод будет немного многословным, но он покажет вам, какие файлы / каталоги различаются. Файлы / каталоги, присутствующие в, DIR2а не в, DIR1будут начинаться со словом deleting.
В некоторых ситуациях ответ @ slartibartfast может быть более уместным, хотя вам нужно убрать -type dопцию, чтобы включить список файлов, не входящих в каталог. rsyncбудет быстрее, если у вас есть значительное количество файлов / каталогов для сравнения.