Как можно рекурсивно сравнить 2 папки с одинаковой структурой.
С использованием diff
или git diff
из командной строки bash
?
5 ответов
Для сравнения 2 файлов мы используем команду diff. Как мы сравниваем 2 каталога? В частности, мы хотим знать, какие файлы / подкаталоги являются общими, какие только в 1 каталоге, но не используются в других
diff dir1 dir2
если вас не интересуют различия в файлах, используйте
diff -q dir1 dir2 |sort
diff упорядочивает вывод в алфавитном порядке по имени файла / подкаталога. Я предпочитаю группировать их по тому, являются ли они общими и существуют ли они только в первом или втором каталоге. Вот почему я передал вывод diff через sort в приведенной выше команде.
Обратите внимание, что по умолчанию diff не попадает в подкаталоги для сравнения файлов и подкаталогов на этом уровне. Чтобы изменить его поведение на рекурсивный переход в подкаталоги, добавьте -r.
diff -qr dir1 dir2 |sort
Надеюсь, это поможет.
Мой любимый для быстрого взгляда:
diff -Ewburq folder1/ folder2/
Список имен файлов (игнорируя все виды изменений пробелов).
Чтобы увидеть весь diff в хорошем средстве просмотра (убрав опцию -q
)
diff -Ewbur folder1/ folder2/ | kompare -o -
Возможно, вы могли бы найти другое (лучше?) инструменты сравнения (meld, k3diff и т. д.?)
Если вы хотите, вы можете включить файлы «новые» в набор с -N
Просто вы можете сделать:
git diff --no-index FOLDER1 FOLDER2
Используйте следующую команду:
diff -r folder1 folder2
diff -Nur directory1 directory2