我有一个情况,我有 2 个大目录树,一个old
和一个new
. 大多数文件是相同的,但有些文件不同和/或在旧版本中丢失。我想找到一种方法来自动创建一个包含以下内容的 tar 文件:
a)new
中不存在的所有文件 b)和old
之间不同的所有文件new
old
只存在于的文件old
应该被忽略。需要维护符号链接。“不同”需要通过全二进制比较来确定。
您可能会猜到,我正在尝试创建一个补丁以使一棵树与另一棵树相匹配。也许已经有一个工具可以执行此操作,或者我可能需要将一些命令串在一起。
我在 Ubuntu Linux 中工作。
我在这篇文章中找到了一些关于如何获取不同文件列表的想法。我使用带有
--dry-run
选项的 rsync 方法:一旦我有了文件列表,我就用这些文件调用 tar。这并没有完全解决仅在一个地方与另一个地方区分文件的问题,但通过一些手动干预,我让它工作了。我希望我能得到一个完全自动化的解决方案,但我能够通过这些一般步骤解决我眼前的问题。