Как автоматически создать тарбол из различий в каталогах?

У меня есть ситуация, когда у меня есть 2 больших дерева каталогов, old и new, Большинство файлов одинаковы, но некоторые отличаются и / или отсутствуют в старой версии. Я хотел бы найти способ автоматически создать файл tar, который содержит:
а) все файлы в new которые не в old
б) все файлы, которые отличаются между new а также old

Файлы, которые существуют только в old следует игнорировать. Символические ссылки должны быть сохранены. "Разное" должно быть определено путем полного бинарного сравнения.
Как вы можете догадаться, я пытаюсь создать патч, чтобы одно дерево соответствовало другому. Возможно, уже есть инструмент для этого, или мне нужно связать воедино некоторые команды.
Я работаю в Ubuntu Linux.

1 ответ

В этом посте я нашел несколько идей о том, как получить список файлов, которые отличаются. Я пошел с rsync подходом с --dry-run опция:

rsync -rv --dry-run --size-only --links old/ new/

Получив список файлов, я вызвал tar с этими файлами. Это не полностью решило проблему разграничения файлов только в одном месте по сравнению с другими, но с некоторым ручным вмешательством я заставил его работать. Я хотел бы получить полностью автоматизированное решение, но я смог решить мою непосредственную проблему с помощью этих общих шагов.

Другие вопросы по тегам