2014-01-07 67 views
2

我有一个20Gb tar.gz文件,主要包含压缩的文本和图像文件。我想知道(没有解压缩文件)我的磁盘上需要多少空间。我怎样才能做出估计?压缩比

回答

2

命令

gzip --list filename.gz 

会告诉你原始的未压缩文件的大小,除其他事项外,虽然没有在原来的大小4GB以上,像@MarkAdler指出。

+1

唉,在这种情况下不起作用。 gzip会告诉你未压缩的大小_modulo 2^32_。因此,20 GB的.gz会报告小于4 GB的未压缩尺寸,这显然是错误的。 –

1

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

使用gzip --list,正如另一个答案中所建议的,将不起作用。 gzip文件格式将未压缩的长度存储在最后的四个字节中,所以这只对那些您知道其他方式的文件具有小于4 GB的压缩长度有用。在这种情况下,您肯定知道这是不是的情况,因为压缩的大小是20 GB。所以gzip报告的长度没用。

要获得未压缩的长度,请将gzip解压缩的输出传递给将计算字节数的内容,如wc。例如:

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