我有一个20Gb tar.gz文件,主要包含压缩的文本和图像文件。我想知道(没有解压缩文件)我的磁盘需要多少空间。我该如何估算?
答案 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}'