压缩率

时间:2014-01-07 15:32:12

标签: compression

我有一个20Gb tar.gz文件,主要包含压缩的文本和图像文件。我想知道(没有解压缩文件)我的磁盘需要多少空间。我该如何估算?

3 个答案:

答案 0 :(得分:2)

命令

gzip --list filename.gz

会告诉你原始未压缩文件的大小,除其他外,虽然不是原始大小4GB或更多,如@MarkAdler指出。

答案 1 :(得分:2)

在这种情况下,您需要解压缩.gz文件。但是您不需要存储它或占用磁盘上的所有空间。

如另一个答案所示,使用gzip --list将无效。 gzip文件格式在末尾以四个字节存储未压缩的长度,因此仅对那些您知道某些文件的压缩长度小于4 GB的文件有用。在这种情况下,您确定的情况,因为压缩大小为20 GB。因此gzip报告的长度毫无用处。

要获得未压缩的长度,请将gzip解压缩的输出通过管道计算字节数,例如wc。 E.g:

gzip -dc < foo.tar.gz | wc -c

答案 2 :(得分:1)

我有一堆压缩文件,我需要知道未压缩的大小,所以我想出了以下命令:

find foo/*.gz -exec gzip -l '{}' \; |awk '{ sub(/uncompressed/, " "); print } {sum += $2} END {print sum}'