在不同的计算机上创建相同的.tgz文件

时间:2010-07-20 17:01:06

标签: bash shell gzip tar

我正在使用giternal,它将外部引用的.git目录压缩为.tgz文件。不幸的是,每当我“冻结”外部时,都会为repo创建一个新的.tgz文件。

即使.git目录的内容相同,也会创建一个带有差异的新.tgz文件。这导致了回购膨胀。

有没有办法让tar czf在不同的机器上创建一个包含完全相同的打包二进制内容的.tgz文件?

1 个答案:

答案 0 :(得分:1)

由于文件时间,uid和gid与文件内容一起存储在tar存档中,因此很难获得完全相同的存档。 我只能提供一个毛茸茸的解决方案,比如将tar文件更改为常用时间和uid。 ustar交换格式在pax实用程序的POSIX定义中进行了解释。 或者您可以解压缩最后和当前快照并对它们进行区分,从而确定它们是否相同,是否需要最后一个。