未压缩文件估计错误?

未压缩文件估计错误?

我有一个很大(~60G)的压缩文件(tar.gz)。

我曾经split把它分成四部分,然后cat将它们重新组合在一起。

但是,现在,当我尝试估计未压缩文件的大小时,结果发现它比原始文件小?这怎么可能?

$ gzip -l myfile.tar.gz 
         compressed        uncompressed  ratio uncompressed_name
        60680003101          3985780736 -1422.4% myfile.tar

答案1

这是由 gzip 压缩文件中用于存储未压缩大小的字段大小引起的:它只有 32 位,因此gzip只能存储最大 4 GiB 的文件大小。任何较大的内容都可以正确压缩和解压缩,但gzip -l在 1.11 及更早版本中给出不正确的未压缩大小。

因此,分割 tarball 并重建它不会导致这种情况,也不应该影响文件 - 如果您想确定,您可以使用gzip -tv.

计算大型 GZIPPED 文件未压缩大小的最快方法了解更多详情,以及手册gzip:

格式gzip表示输入大小模2立方,因此对于 4 GiB 及更大的未压缩文件,未压缩的大小和压缩率列出不正确。

相关内容