553

I have a file called filename.bz2 that 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?

Jury A
  • 5,675

7 Answers7

735

Try 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
79

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.

zx8754
  • 723
Benj
  • 1,023
28

Use the bunzip2 (or bzip2 -d) command to decompress the file. For more information see this man page,

Levon
  • 992
23

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:

pbzip2:

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:

enter image description here


For further information regarding the parameters for lbzip2: http://explainshell.com/explain?cmd=lbzip2+-d+-n+32+my_file.bz2 :

enter image description here

Franck Dernoncourt
  • 24,246
  • 64
  • 231
  • 400
6
bzip2 -dc my_file.tar.bz2 | tar xvf -

worked for me on cygwin

Vishal
  • 69
0

If you have a locked down system with no bzip installed but do have python3 you can use the bz2 library.

import bz2
f = bz2.open(file_name,mode="rt")
for line in f:
  print(line)
-8
  1. Go to https://cloudconvert.com.
  2. Upload the file.
  3. Convert it into a .tar file.
  4. Download it.
  5. Extract it from there, in your terminal.