未压缩文件估计错误?

pka*_*mol 10 compression gzip split

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

我曾经split把它分成 4 部分,然后cat将它们重新连接在一起。

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

$ gzip -l myfile.tar.gz 
         compressed        uncompressed  ratio uncompressed_name
        60680003101          3985780736 -1422.4% myfile.tar
Run Code Online (Sandbox Code Playgroud)

Ste*_*itt 21

这是由用于在 gzipped 文件中存储未压缩大小的字段的大小引起的:它只有 32 位,因此gzip最多只能存储 4 GiB 的文件大小。任何较大的东西都会被正确压缩和解压缩,但gzip -l会给出不正确的未压缩大小。

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

工作了大gzip压缩解压缩后大小的最快途径了解更多详情,并gzip手册

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