如何在存档创建过程中让 tar 动态硬链接相同的内容?

如何在存档创建过程中让 tar 动态硬链接相同的内容?

我怎样才能tar(或Linux上常见的任何其他程序,例如pax)在存档创建过程中动态硬链接重复内容?

也就是说,我想避免预先进行硬链接,而是想tar处理它。

那可能吗?如何?

答案1

目前使用 GNU tar 还不可能做到这一点,但事情是存在的:

请注意,硬链接和重复数据删除不具有相同的语义,需要另一种 tar 节点类型来表示“重复数据”,以便存档提取过程能够正确地重新创建重复(从而独立存在)文件;这将创建与大多数标准工具(GNU tar、pax 等)不兼容的 tar 存档,这将是一个大胆的举动。

让我坚持一下:如果你能够用硬链接文件同化欺骗,那么你在归档提取时就会遇到问题:*它们真的是像 Git 存储库那样的硬链接文件吗?那么它们应该真正重新创建为硬链接文件,否则恢复的 Git 存储库将无法工作? * 或者它们是否确实是相同的文件,如果它们被恢复为硬链接,则恢复的存档可能会出现重大数据泄漏(想象一下您在归档时同化了相同的 /etc/passwd 文件,将它们恢复为具有多个硬链接的单个文件:一个一个虚拟机中的修改在另一个虚拟机中可见!)

相关内容