I have a file.tar.bz2 that's about 50GB and would like to extract it however I don't know how much space I will need. Is there a command to print the compression ratio of the tar.bz2 file?
3 Answers
I don't know of a command specifically for printing out compression ratios, but
bzip2 -dc file.tar.bz2 | wc -c
should show you the number of bytes taken up by the uncompressed tar file. Some of that space is taken up by the tar metadata, but it should give you a ballpark estimate.
tar -tvjf file.tar.bz2
Will list all the files in the tar file, their respective sizes, and other information. You could always pipe the output through an awk script to add up the numbers...
tar -tvjf file.tar.bz2 | awk '{i+=$3;print i" "$0}' | tail
-
1or
tar -tvjf file.tar.bz2 | awk '{i+=$3} END{print i}'
- will only print the sum of all sizes– mataNov 2, 2012 at 22:19
Seeing as this is where search brought me for doing the same thing with .tar.gz files, so I'll add that
tar -tvf file.tar.gz | awk '{i+=$3} END{print i}'
will work for those. ie just leave out the j that specifies bz2 format. I would of posted this as a comment @TooLazyToLogIn's post but I don't have the rep for that.