我有一个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] 删除。
我来说两句