压缩文件后,有一种方法可以快速查询该文件,以说出未压缩文件的大小(不解压缩),尤其是在未压缩文件的大小> 4GB的情况下。
根据RFC https://tools.ietf.org/html/rfc1952#page-5,您可以查询文件的最后4个字节,但是如果未压缩的文件大于4GB,则该值仅代表uncompressed value modulo 2^32
也可以通过运行检索此值gunzip -l foo.gz
,但是“未压缩”列仅包含uncompressed value modulo 2^32
一次,大概是因为它如上所述读取了页脚。
我只是想知道是否有一种无需先解压缩即可获取未压缩文件大小的方法,这在压缩文件包含50GB +数据并且使用诸如 gzcat foo.gz | wc -c
编辑: 4GB限制已在OSX()随附man
的gzip
实用程序页面中公开确认Apple gzip 242
BUGS
According to RFC 1952, the recorded file size is stored in a 32-bit
integer, therefore, it can not represent files larger than 4GB. This
limitation also applies to -l option of gzip utility.
gzip
于1992年问世。如果周围有23岁的年轻人漫游,我会感到惊讶。我敢肯定有一些,但据我所知,中位年龄在30-35岁左右。
xz
没有此限制的好时机。GNU切换到xz
。
xz
可以“解决”此问题。
gzip
必须比该社区中的许多用户年龄更大!