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

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

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

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

решение1

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

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

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

Связанный контент