1

Как можно рекурсивно сравнить 2 папки с одинаковой структурой.
С использованием diff или git diff из командной строки bash ?

5 ответов5

3

Для сравнения 2 файлов мы используем команду diff. Как мы сравниваем 2 каталога? В частности, мы хотим знать, какие файлы / подкаталоги являются общими, какие только в 1 каталоге, но не используются в других

diff dir1 dir2

если вас не интересуют различия в файлах, используйте

diff -q dir1 dir2 |sort

diff упорядочивает вывод в алфавитном порядке по имени файла / подкаталога. Я предпочитаю группировать их по тому, являются ли они общими и существуют ли они только в первом или втором каталоге. Вот почему я передал вывод diff через sort в приведенной выше команде.

Обратите внимание, что по умолчанию diff не попадает в подкаталоги для сравнения файлов и подкаталогов на этом уровне. Чтобы изменить его поведение на рекурсивный переход в подкаталоги, добавьте -r.

diff -qr dir1 dir2 |sort

Надеюсь, это поможет.

1

Мой любимый для быстрого взгляда:

diff -Ewburq folder1/ folder2/

Список имен файлов (игнорируя все виды изменений пробелов).

Чтобы увидеть весь diff в хорошем средстве просмотра (убрав опцию -q )

diff -Ewbur folder1/ folder2/ | kompare -o -

Возможно, вы могли бы найти другое (лучше?) инструменты сравнения (meld, k3diff и т. д.?)

Если вы хотите, вы можете включить файлы «новые» в набор с -N

0

Просто вы можете сделать:

git diff --no-index FOLDER1 FOLDER2
0

Используйте следующую команду:

diff -r folder1 folder2
0
diff -Nur directory1 directory2

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .