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