【发布时间】:2016-01-04 23:56:30
【问题描述】:
有没有办法创建一个.tar 文件,在其文件/目录中省略 atime/ctime/mtime 的值?
我们为什么要这样做?
我们在构建过程中有一个步骤,它生成一个工件目录,该目录被打包到一个 tar 文件中。我们希望构建步骤是幂等的——给定相同的输入,它每次生成完全相同相同的文件/输出。
理想情况下,我们还希望该步骤在干净构建中按位幂等,以便我们可以使用连续构建的哈希来检查是否没有任何变化。但是由于 tar 文件包含每个条目的时间戳 (atime/ctime/mtime),因此该构建步骤创建的 tar 文件永远不会与前一次运行按位相同,即使存档中每个文件的内容 em> 按位相同。
有没有办法生成一个省略其条目时间戳的 tarfile,以便生成存档的步骤可以按位幂等? (我们希望利用 tar 保留的其他文件元数据,例如文件模式位和符号链接。)
【问题讨论】:
-
你有没有找到完整的答案?我也想做同样的事情,在这里提出一个问题:stackoverflow.com/questions/45734702/… 我还想确保不存储用户、组和权限。还有什么需要注意的吗?
-
@TomEllis,如果您想精确控制哪些权限被存储和哪些不被存储,我会考虑使用 Python
tarfile模块构建一些自定义的东西。
标签: build timestamp archive tar