未压缩的文件估计错误吗?


9

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

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

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

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

是否split真的到这个有关?将它们拆分并重新组合在一起后,您是否只有问题?
Barmar

Answers:


20

这是由于用于存储gzip压缩文件中未压缩大小的字段的大小所致:它只有32位,因此gzip只能存储最大4 GiB的文件大小。任何较大的内容均会正确压缩和解压缩,但gzip -l会给出不正确的未压缩大小。

切分的压缩包,并重建它没有引起这一点,不应该影响到文件-如果你想确保,你可以检查它gzip -tv

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

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


因此,实际内容仍然可以保留,对吗?
罗斯兰'18

@Ruslan是的,显示的大小是错误的,但是内容还可以。
斯蒂芬·基特

+1我想这是UINT32错误或类似的错误。
mathreadler
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.