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