是否可以通过.tar.bz2中的文件了解空间占用情况

时间:2014-06-20 08:29:37

标签: linux bash tar du

我通常使用du -h(-h作为人类可读的格式)来了解我的文件所占用的空间。 我用.tar.bz2压缩了一些文件夹,但我不确定它是否运行良好。我的意思是,如果所有文件都已正确压缩。我知道可以在.tar.bz2内提取给定文件,但我想知道是否  在du -h里面有一种方法。

2 个答案:

答案 0 :(得分:1)

你可以做到

tar -jtvf file-name.tar.bz2

如果那个不够详细,你可以使用awk来提取字节:

tar -jtvf asg2.tar.bz2 | awk '{print $3}'

如果你想获得总字节数,你可以这样做:

tar -jtvf asg2.tar.bz2 | awk '{print s+=$3}' | tail -1

最后,将其转换为人类可读的格式:

echo $(tar -jtvf asg2.tar.bz2 | awk '{print s+=$3}' | tail -1) | awk '{foo = $1 / 1024 / 1024 ; print foo "MB" }'

输出:

0.00749779MB

答案 1 :(得分:0)

tar.bz2文件是bzip2 - 压缩普通tar存档。所以它不包含单独的“压缩”文件。

您可以使用tar -tjf foo.tar.bz2列出[解压缩]的内容。如果该命令成功,则整个foo.tar.bz2的解压缩确实有效。

如果要压缩存档中的单个文件,请使用其他工具,例如afio

如果要测量解压缩档案的总大小(这是对所有已归档文件的累积大小的高估),请尝试

  bunzip2 < foo.tar.bz2 | wc