I have a file as: filename.bz2
I need to decompress.
I have tried the command: tar xvjf filename.tar.bz2
, but it didn't work as the file is not a tar
file.
How do I decompress this file?
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.
Sign up to join this communityTry the following:
bzip2 -d filename.bz2
Note, that this command will not preserve original archive file.
To preserve the original archive, add the -k
option:
bzip2 -dk filename.bz2
bzip2 -d vim-8.0.tar.bz2
, that results vim-8.0.tar
. I couldn't enter this.
tar -x vim-8.0.tar
. Originally you could have used tar -xjvf vim-8.0.tar.bz2
.
Nov 17, 2017 at 15:52
tar -xf vim-8.0.tar
Dec 17, 2017 at 14:29
To explain a bit further, a single file can be compressed with bzip2
thus:
bzip2 myfile.txt
tar
is only required when compressing multiple files:
tar cvjf myfile.tar.bz *.txt
Hence, when uncompressing a .bz2
file use bunzip
, when uncompressing a tar.bz2
file use tar xjvf
.
tar xjf filename.tar.bz2
. The v
just adds verbose output. Keep your terminal clean! I also had problems running tar -xjf
, so be sure to try running it sans the -
tar xf
should be sufficient with the BSD variant — the j
flag is only used when compressing
Use the bunzip2
(or bzip2 -d
) command to decompress the file. For more information see this man page,
bzip2
is mono-threaded, which means it will take a long time to decompress a large file.
To decompress a .bz2
file multithreadedly, you can use the free, open source program lbzip2
:
sudo apt-get install lbzip2
lbzip2 -d my_file.bz2
-d
indicates you wish to decompress the file. It would automatically determine how many threads it will use. To specify the exact number of threads you want to use, use the -n
parameter, e.g.:
lbzip2 -d -n 32 my_file.bz2
A few more useful commands with lbzip2
:
To compress a file with a progress bar:
pv adb_int.tar | lbzip2 > adb_int.tar.bz2
Requirements for the progress bar:
sudo apt-get install -y pv
To compress a folder:
tar -c -I lbzip2 -f file.tar.bz2 folder_name
To uncompress a folder:
tar -I lbzip2 -xvf file.tar.bz2
Parameters:
-I, --use-compress-program PROG
filter through PROG (must accept -d)
-x, --extract, --get
extract files from an archive
-v, --verbose
verbosely list files processed
-f, --file ARCHIVE
use archive file or device ARCHIVE
Some alternatives to decompress a .bz2
file multithreadedly:
sudo apt-get install pbzip2
pbzip2 -d my_file.bz2
mpibzip2
: designed to be used on on cluster machines.
If you need some large .bz2
files to experiment with: https://dumps.wikimedia.org/mirrors.html
For example (a 14 GB .bz2
file, 200 GB uncompressed):
wget http://dumps.wikimedia.your.org/wikidatawiki/20170120/wikidatawiki-20170120-pages-articles-multistream.xml.bz2
lbzip2 -d -n 32 wikidatawiki-20170120-pages-articles-multistream.xml.bz2
http://vbtechsupport.com/1614/ did the benchmark:
For further information regarding the parameters for lbzip2
: http://explainshell.com/explain?cmd=lbzip2+-d+-n+32+my_file.bz2 :
bzip2 -dc my_file.tar.bz2 | tar xvf -
worked for me on cygwin
bzip2 -d my_file.tar.bz2 ; tar xvf my_file.tar
bzip2 -dc my_file.tar.bz2 | tar xv
i.e. no need to use -f option and corresponding '-' sign after it because tar can directly read the from STDOUT through the pipe operator. Also, feel free to drop -v option if you don't want to list files being processed.
tar
archive.
Jan 15, 2016 at 2:29