一旦文件被 gzip 压缩,是否有一种方法可以快速查询它以说明未压缩文件的大小(无需解压缩),尤其是在未压缩文件的大小 > 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
再次包含,大概是因为它正在如上所述读取页脚。
我只是想知道是否有一种方法无需先解压缩即可获取未压缩文件的大小,这在 gzip 文件包含 50GB+ 数据并且需要一段时间才能使用以下方法解压缩的情况下特别有用 gzcat foo.gz | wc -c
编辑: OSX 附带man
的gzip
实用程序页面中公开承认了 4GB 的限制( 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 …
Run Code Online (Sandbox Code Playgroud)