Я зазвичай використовую rsync
для цього завдання:
rsync -nav --delete DIR1/ DIR2
Будьте ДУЖЕ Дбайливими завжди використовувати параметр-n
, aka--dry-run
, або він синхронізує (змінить вміст) каталогів.
Це дозволить порівняти файли на основі часу та розмірів модифікації файлів ... Я думаю, що саме цього ви хочете, або, принаймні, ви не заперечуєте, якщо це робиться? Я зрозумів, що ви просто хочете, щоб це сталося швидше , а не те, що вам потрібно, щоб ігнорувати різницю між вмістом файлу. Якщо ви хочете, щоб він не перераховував різні файли з однаковими іменами, я думаю, що додавання --ignore-existing
параметра зробить це.
Також слід пам'ятати , що без введення /
в кінці DIR1
змусить його порівняти каталог DIR1
з вмістом в DIR2
.
Вихід у кінцевому підсумку є трохи дослідним, але він покаже, які файли / каталоги відрізняються. Файли / каталоги, присутні в, DIR2
а не в, DIR1
будуть мати слово deleting
.
У деяких ситуаціях відповідь @ slartibartfast може бути більш підходящою, хоча вам потрібно буде зняти -type d
опцію, щоб увімкнути список файлів, що не містять каталогів. rsync
буде швидше, якщо у вас буде значна кількість файлів / каталогів для порівняння.