在不解压的情况下,在终端中找出.tar.gz档案的大小

斯文

我有一个32GB的.tar.gz存档,如果我解压缩此压缩的存档,我想知道文件的大小。我想避免先解压缩档案,而不要使用eg du

是否有可能在不解压缩压缩档案的情况下找到包含文件的大小(在Linux和/或MacOSX系统上)?

对于另一个存档,我知道它也包含.tar.gz文件。是否还可以计算档案中包含的解压缩档案的大小?(例如,通过设置模拟“拆包”的级别?)

马克·阿德勒

当然。仅用于-tv列出内容及其大小。例如

% tar -tvzf sometools2.tar.gz 
-rw-r--r-- madler/admin   3442 2005-02-27 21:40 pngdat.c
-rw-r--r-- madler/admin  24938 2005-02-27 21:39 infgen.c

如果您想增加尺寸(如du),可以使用awk

% tar -tvzf sometools2.tar.gz|awk '{ s += $3 } END { print s }'
28380

对于制成的嵌入式.tar.gz文件,你需要时通过送他们找到他们做那些单独stdout使用-O

% tar -tvzf imbed.tar.gz 
-rw-r--r-- madler/staff    505 2012-02-12 00:06 lucas.c
-rw-r--r-- madler/staff  27913 2005-03-20 11:10 lzwtry.c
-rw-r--r-- madler/staff   8314 2005-02-27 21:42 sometools2.tar.gz
% tar -xOzf imbed.tar.gz sometools2.tar.gz | tar -tvzf - | awk '{ s += $3 } END { print s }'
28380

您可以编写脚本以在-tv输出中找到这些脚本,然后将其提取,甚至以递归方式进行处理。我将其留给读者练习。

请注意,这些选项适用于Linux和Mac OS X上的GNUtar。BSDtar的选项可能有所不同。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章