Подтвердить что ты не робот

Как сравнить два дерева источников в Linux?

У меня есть два каталога, содержащие исходные файлы для проекта, который я унаследовал с помощью небольшой документации. Как сравнить обе каталоги, чтобы увидеть, каковы различия. Спасибо.

4b9b3361

Ответ 1

Вы можете попробовать MELD: http://meld.sourceforge.net/ который является прекрасным инструментом визуального разграничения; -)

Ответ 2

Попробуйте следующее:

diff -Naur dir1/ dir2/
  • Опция -u делает вывод a немного легче читать.
  • Параметр -r повторяется через все подкаталоги
  • Параметры -N и -a действительно только необходимо, если вы хотите создать файл патча.

Ответ 3

diff -u -r dirA dirB

Покажет вам единую рекурсивную разницу между файлами в dirA и dirB

Ответ 4

вы можете использовать команду diff в оболочке. Или установите такой инструмент, как kdiff3

Ответ 5

Команда diff для сравнения каталогов постоянно говорила мне, что у меня не было различий, когда я знал, что есть различия.

Вместо использования diff напрямую я использовал отсортированный список md5sums, а затем сравнил эти файлы с diff:

find /path1/dir/ -type f -exec md5sum {} + | awk '{print $2 $1}' | sort >! path1.log
find /path2/dir/ -type f -exec md5sum {} + | awk '{print $2 $1}' | sort >! path2.log
gvimdiff path1.log path2.log

Если начальная часть пути вызывает головные боли, измените ее. Выберите окно Path1 и введите:

:%s|path1|path2|g

Это заменит все экземпляры path1 на path2 в первом файле, и теперь ваш diff должен показывать только различия.