У меня есть два каталога, содержащие исходные файлы для проекта, который я унаследовал с помощью небольшой документации. Как сравнить обе каталоги, чтобы увидеть, каковы различия. Спасибо.
Как сравнить два дерева источников в Linux?
Ответ 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 должен показывать только различия.