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