Cách giải nén tệp .bz2


377

Tôi có một tập tin như: filename.bz2Tôi cần giải nén.

Tôi đã thử lệnh: tar xvjf filename.tar.bz2nhưng nó không hoạt động vì tệp không phải là tartệp.

Làm thế nào để tôi giải nén tập tin này?

Câu trả lời:


497

Hãy thử như sau:

bzip2 -d filename.bz2

Lưu ý rằng lệnh này sẽ không bảo toàn tệp lưu trữ gốc.

Để giữ lại kho lưu trữ ban đầu, hãy thêm -ktùy chọn:

bzip2 -dk filename.bz2

4
Bạn cũng có thể sử dụng bunzip2, mặc định sử dụng tùy chọn -d (giải nén).
RonaldB

2
@LewisDihua Tôi đã chạy bzip2 -d vim-8.0.tar.bz2, kết quả đó vim-8.0.tar. Tôi không thể nhập cái này.
alrcal

4
@alhelal đó là vì đó là tệp .tar.bz2. Bạn đã giải nén tarball, bạn còn lại với tarbal đã giải nén. Giải nén nó với tar -x vim-8.0.tar. Ban đầu bạn có thể đã sử dụng tar -xjvf vim-8.0.tar.bz2.
Kim cương Lewis

Một điều chỉnh nhỏ cho nhận xét của Lewis, tar cũng cần -f (ít nhất là trên Raspbian Wheezy) như sautar -xf vim-8.0.tar
JulianHarty 17/12/17

65

Để giải thích thêm một chút, một tệp có thể được nén bằng bzip2:

bzip2 myfile.txt

tar chỉ được yêu cầu khi nén nhiều tệp:

tar cvjf myfile.tar.bz *.txt

Do đó, khi giải nén một .bz2tập tin sử dụng bunzip, khi giải nén tar.bz2tập tin sử dụng tar xjvf.


6
Lời khuyên tuyệt vời về xjvf, chỉ cần cứu tôi. Cảm ơn!
Edgar Aroutiounian

4
Bạn chỉ có thể sử dụng tar xjf filename.tar.bz2. Việc vchỉ thêm đầu ra dài dòng. Giữ thiết bị đầu cuối của bạn sạch sẽ! Tôi cũng gặp vấn đề khi chạy tar -xjf, vì vậy hãy chắc chắn thử chạy nó-
MrOodles 15/1/2015

1
tar xfphải đủ với biến thể BSD - jcờ chỉ được sử dụng khi nén
Mark Fox


12

bzip2 là đơn luồng, có nghĩa là sẽ mất nhiều thời gian để giải nén một tệp lớn.

Để giải nén một .bz2tập tin đa luồng, bạn có thể sử dụng chương trình nguồn mở, miễn phí lbzip2:

sudo apt-get install lbzip2
lbzip2 -d my_file.bz2

-dcho biết bạn muốn giải nén tập tin. Nó sẽ tự động xác định có bao nhiêu chủ đề nó sẽ sử dụng. Để chỉ định số lượng chủ đề chính xác mà bạn muốn sử dụng, hãy sử dụng -ntham số, ví dụ:

lbzip2 -d -n 32 my_file.bz2

Một vài lệnh hữu ích hơn với lbzip2:

Để nén một thư mục:

tar -c -I lbzip2 -f file.tar.bz2 folder_name

Để giải nén một thư mục:

 tar -I lbzip2 -xvf file.tar.bz2

Thông số:

-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

Một số lựa chọn thay thế để giải nén một .bz2tập tin đa luồng:

pbzip2:

sudo apt-get install pbzip2
pbzip2 -d my_file.bz2

mpibzip2: được thiết kế để sử dụng trên các máy cụm.


Nếu bạn cần một số .bz2tệp lớn để thử nghiệm: https://dumps.wikidia.org/mirrors.html

Ví dụ: ( .bz2tệp 14 GB , không nén 200 GB):

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/ đã làm điểm chuẩn:

nhập mô tả hình ảnh ở đây


Để biết thêm thông tin về các tham số cho lbzip2: http://explainshell.com/explain?cmd=lbzip2+-d+-n+32+my_file.bz2 :

nhập mô tả hình ảnh ở đây


3
bzip2 -dc my_file.tar.bz2 | tar xvf -

làm việc cho tôi trên cygwin


1
Sẽ rất hữu ích nếu bạn có thể thêm một vài câu vào câu trả lời của mình để giải thích những gì nó làm.
fixer1234

2
Tùy chọn @ fixer1234 '-c' sao chép đầu ra được giải nén thành STDOUT, sau đó được chuyển sang tiện ích tar và được hiển thị dưới dạng tên tệp bằng cách sử dụng '-' để bạn có thể đơn giản hóa nó thành: bzip2 -d my_file.tar.bz2 ; tar xvf my_file.tar
sactiw

1
Tôi tin ngay cả điều này sẽ hoạt động bzip2 -dc my_file.tar.bz2 | tar xvtức là không cần sử dụng tùy chọn -f và dấu '-' tương ứng sau nó vì tar có thể đọc trực tiếp từ STDOUT thông qua toán tử đường ống. Ngoài ra, vui lòng thả tùy chọn -v nếu bạn không muốn liệt kê các tệp đang được xử lý.
sactiw

2
Điều này không có ích, vì poster ban đầu đã đề cập rằng nó không phải là một tarkho lưu trữ.
icedwater

-4
  1. Truy cập https://cloudconvert.com .
  2. Tải tập tin lên.
  3. Chuyển đổi nó thành một tập tin .tar.
  4. Tải về nó.
  5. Trích xuất nó từ đó, trong thiết bị đầu cuối của bạn.

7
Không phù hợp với các tệp thực sự lớn!
narendranathjoshi

9
Chúng ta là siêu nhân. Chúng tôi muốn một giải pháp dựa trên thiết bị đầu cuối.
noɥʇʎԀʎzɐɹƆ

@Ông. de Santos ... và do đó từ bỏ quyền kiểm soát dữ liệu của bạn. Bạn không thể nghiêm trang.
dirdi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.