当然。只需用于-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
Run Code Online (Sandbox Code Playgroud)
如果您想将尺寸相加(如du),您可以使用awk:
% tar -tvzf sometools2.tar.gz|awk '{ s += $3 } END { print s }'
28380
Run Code Online (Sandbox Code Playgroud)
对于嵌入.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
Run Code Online (Sandbox Code Playgroud)
您可以编写一个脚本来在输出中查找这些内容-tv,然后提取它们,甚至可以递归地执行。我将把它作为练习留给读者。
请注意,这些选项适用于 GNU tar,Linux 和 Mac OS X 上都有该选项。BSD tar 的选项可能不同。