有没有一种方法可以创建一个.tar
文件,省略其文件/目录的atime/ctime/mtime值?
为什么要这样做?
我们在构建过程中有一个步骤,生成一个包含构件的目录,并将其打包成tar文件。我们期望该构建步骤是幂等的--给定相同的输入,每次它都会产生完全相同的文件/输出。
理想情况下,我们也希望该步骤在干净的构建之间是按位幂等的,以便我们可以使用连续构建的哈希来检查是否有任何更改。但由于tar文件包括每个条目的时间戳(atime/ctime/mtime),因此由该构建步骤创建的tar文件从未与上一次运行完全相同,即使存档中每个文件的内容都是按位相同的。
有没有一种生成省略其条目时间戳的tar文件的方法,以便生成存档的步骤可以成为按位幂等的?(我们希望利用tar保留的其他文件元数据,例如文件模式位和符号链接。)
tarfile
模块构建自定义内容。 - Charles Duffy