Как я могу рекурсивно сравнить 2 папки с одинаковой структурой.
С помощью diff
или git diff
из bash
командной строки?
решение1
Для сравнения 2 файлов мы используем команду diff. Как сравнить 2 каталога? В частности, мы хотим узнать, какие файлы/подкаталоги являются общими, какие находятся только в 1 каталоге, но не в другом, используйте
diff dir1 dir2
если вас не интересуют различия в файлах, используйте
diff -q dir1 dir2 |sort
diff упорядочивает свой вывод в алфавитном порядке по имени файла/подкаталога. Я предпочитаю группировать их по тому, являются ли они общими и существуют ли они только в первом или втором каталоге. Вот почему я передал вывод diff через sort в приведенной выше команде.
Обратите внимание, что по умолчанию diff не проникает в подкаталоги для сравнения файлов и подкаталогов на этом уровне. Чтобы изменить его поведение для рекурсивного перехода вниз по подкаталогам, добавьте -r.
diff -qr dir1 dir2 |sort
Надеюсь, это поможет.
решение2
Вы можете сделать следующее:
git diff --no-index FOLDER1 FOLDER2
решение3
Используйте следующую команду:
diff -r folder1 folder2
решение4
diff -Nur directory1 directory2