Linux 是否有可能知道.tar.bz2中文件占用的空间

Linux 是否有可能知道.tar.bz2中文件占用的空间,linux,bash,tar,du,Linux,Bash,Tar,Du,我通常使用du-h(-h表示可读格式)来了解文件占用的空间。 我用.tar.bz2压缩了一些文件夹,但我不确定它是否工作正常。我是说,如果所有的文件都被正确压缩了。我知道可以在.tar.bz2中提取给定文件,但我想知道 有一种方法可以在它里面du-h。一个tar。bz2文件是普通tar档案的bzip2压缩。因此,它不包含单独的“压缩”文件 您可以使用tar-tjf foo.tar.bz2,列出[decompressed]achive。如果该命令成功,则整个foo.tar.bz2的解压工作正常 如

我通常使用
du-h
(-h表示可读格式)来了解文件占用的空间。 我用
.tar.bz2
压缩了一些文件夹,但我不确定它是否工作正常。我是说,如果所有的文件都被正确压缩了。我知道可以在
.tar.bz2
中提取给定文件,但我想知道
有一种方法可以在它里面
du-h

一个
tar。bz2
文件是普通
tar
档案的
bzip2
压缩。因此,它不包含单独的“压缩”文件

您可以使用
tar-tjf foo.tar.bz2
,列出[decompressed]achive。如果该命令成功,则整个
foo.tar.bz2
的解压工作正常

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

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

bunzip2
你可以这样做

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
0.00749779MB