Справочник «Дифф»?

8

У меня есть две директории, которые являются разными версиями одного и того же программного пакета. Я хотел бы перечислить все файлы / каталоги, которые изменились между ними, а затем скопировать эти различия в новый каталог.

Я пытался различные сценарии с md5sumи , diff -Nurqно не смогли получить результат я ищу.

Любые рекомендации?

Богатые
источник
Что значит «скопировать разницу»?
CJM
Я не понимаю, что ты пытаешься сделать. diff -r(или варианты) уже дает вам различия. Что вы пытаетесь с ними сделать?
Жиль "ТАК - перестань быть злым"

Ответы:

8

Вы должны использовать rsyncвместо этого. Нечто подобное rsync -rv $old/ $new/должно сделать свое дело: это напечатает файлы, которые он собирается скопировать.

Запустите с дополнительной -nдля пробного запуска, прежде чем фактически изменить новый каталог.

Алекс
источник
5

Лучший инструмент, который я нашел, это использование vim с плагином DirDiff . Если вы используете vimи vimdiff, этот плагин будет легко выучить.

Автор описывает это так:

описание

Это утилита, которая выполняет рекурсивный diff для двух каталогов и генерирует "окно" diff. На основе этого окна вы можете выполнять различные операции сравнения, такие как открытие двух файлов в режиме сравнения Vim, рекурсивное копирование файла или каталога в другой или удаление дерева каталогов из исходного каталога.

DirDiff похож на использование vimdiffдля сравнения двух каталогов, а также всех подкаталогов и файлов, содержащихся в них. Я часто использую этот инструмент для сравнения различных веток Subversion, каталогов конфигурации на разных хостах и ​​т. Д.

Чтобы посмотреть скриншот, посмотрите блог dedm: http://dedm.livejournal.com/115224.html

Стефан Ласевский
источник