Steve Armstrong Asked: 2009-05-20 07:44:21 +0800 CST2009-05-20 07:44:21 +0800 CST 2009-05-20 07:44:21 +0800 CST 在提取之前从 tgz 获取提取的大小 772 是否有可能获得 tgz 提取后将占用的大小,但不提取它?我基本上想要tar tzf 文件.tgz旁边有尺寸。我真的在寻找一个总数,所以一个给出总大小但不给出特定文件大小的解决方案会起作用。 bash tar 4 个回答 Voted Best Answer WerkkreW 2009-05-20T07:49:43+08:002009-05-20T07:49:43+08:00 如果它使用 gzip 压缩进行压缩,您可以执行以下操作: gunzip -l filename.tar.gz 由于 tar 未压缩,因此应该为您提供所需的信息。 Node 2009-05-20T07:53:32+08:002009-05-20T07:53:32+08:00 嗯,我更喜欢类似的东西: tar vtzf somefile.tar.gz |awk '{SUM += $3} END {print SUM}' MikeyB 2009-05-20T07:48:12+08:002009-05-20T07:48:12+08:00 zcat file.tgz | wc -c 将为您提供未压缩的 .tar 文件占用的字符数,这将非常接近正确。 RaZieRSarE 2018-03-09T12:47:58+08:002018-03-09T12:47:58+08:00 我在网上找到所有网站,当文件大小大于 4GB 时,无法解决这个问题。 首先,哪个最快? [oracle@base tmp]$ time zcat oracle.20180303.030001.dmp.tar.gz | 厕所-c 6667028480 真正的 0m45.761s 用户 0m43.203s 系统 0m5.185s [oracle@base tmp]$ time gzip -dc oracle.20180303.030001.dmp.tar.gz | 厕所-c 6667028480 真正的 0m45.335s 用户 0m42.781s 系统 0m5.153s [oracle@base tmp]$ time tar -tvf oracle.20180303.030001.dmp.tar.gz -rw-r--r-- oracle/oinstall 111828 2018-03-03 03:05 oracle.20180303.030001.log -rw-r----- oracle/oinstall 6666911744 2018-03-03 03:05 oracle.20180303.030001.dmp 真正的 0m46.669s 用户 0m44.347s 系统 0m4.981s 绝对,tar -xvf是最快的,但是¿如何在获取标头后取消执行? 我的解决方案是这样的: [oracle@base tmp]$ time echo $(timeout --signal=SIGINT 1s tar -tvf oracle.20180303.030001.dmp.tar.gz | awk '{print $3}') | grep -o '[[:digit:]]*' | awk '{ 总和 += $1 } END { 打印总和 }' 6667023572
如果它使用 gzip 压缩进行压缩,您可以执行以下操作:
由于 tar 未压缩,因此应该为您提供所需的信息。
嗯,我更喜欢类似的东西:
将为您提供未压缩的 .tar 文件占用的字符数,这将非常接近正确。
我在网上找到所有网站,当文件大小大于 4GB 时,无法解决这个问题。
首先,哪个最快?
绝对,tar -xvf是最快的,但是¿如何在获取标头后取消执行?
我的解决方案是这样的: