Bất kỳ lệnh linux để thực hiện giải nén song song tệp tar.bz2?


17

Tôi có một tệp khá lớn (~ 50GB) và phải mất một thời gian để chạy

tar xvf file.tar.bz2

trên đó Tôi biết các chương trình có thể thực hiện nén song song cho các tệp bzip2 nhưng không biết các chương trình có thể giải nén song song cho các tệp bzip2.

Có chương trình nào có thể đạt được điều này? Cú pháp chính xác của lệnh sẽ sử dụng để trích xuất từ ​​tệp là gì?

Tôi đang sử dụng Ubuntu 12.04

Câu trả lời:


22

lbzip2pbzip2là các công cụ mà bạn có thể sử dụng để nén và giải nén song song.

Sử dụng:

lbzip2 -d <file.tar.bz2> 
pbzip2 -d <file.tar.bz2> 

-d tùy chọn được sử dụng để giải nén.

Để cài đặt các gói này:

Cài đặt lbzip2loại lbzip2 :

sudo apt-get install lbzip2

Cài đặt pbzip2loại pbzip2 :

sudo apt-get install pbzip2

Vì vậy, nếu tôi hiểu chính xác, tôi cần giải nén và sau đó giải nén? Giống như 2 lệnh trái ngược với tar xvf?
dùng784637

1
Có khi bạn chạy lbzip2 -d -n 2 file.tar.bz2nó sẽ cho một tập tin tar. Mà cần phải được xác thực.
devav2

1
Từ trang man của pbzip2 (lbzip2 kể một câu chuyện tương tự): "Các tệp được nén bằng pbzip2 cũng sẽ tăng tốc đáng kể khi giải nén bằng pbzip2. Các tệp được nén bằng bzip2 sẽ không thấy tốc độ vì bzip2 đóng gói dữ liệu vào một đoạn không thể phân chia giữa các bộ xử lý. "
Tapio

1
@Tapio Đây là Mô tả cho lbzip2"Nén hoặc giải nén các toán hạng FILE hoặc đầu vào tiêu chuẩn cho các tệp thông thường hoặc đầu ra tiêu chuẩn, bằng cách gọi libbz2 của Julian Seward từ nhiều luồng. Tiện ích lbzip2 sử dụng nhiều luồng và bộ tách ràng buộc đầu vào ngay cả khi giải nén các tệp .bz2 được tạo bởi bzip2 tiêu chuẩn (nhưng xem BUGS bên dưới). "
devav2

1
Từ câu trả lời một mình, tôi sẽ hiểu cả hai chương trình cần phải được sử dụng cùng nhau bằng cách nào đó - nhưng thực sự chúng có thể là lựa chọn thay thế? (Nó nói "lbzip2 và pbzip2 là các công cụ ...", "Cách sử dụng: lbzip2 ... pbzip2 ...", "để cài đặt những ...")
Volker Siegel

11

Bạn có thể giải nén tệp lưu trữ của mình bằng một lệnh duy nhất bằng -Itùy chọn tar . Nó cung cấp cho bạn khả năng sử dụng bất kỳ tiện ích nén nào hỗ trợ -dtùy chọn.

tar -I lbzip2 -xvf <file.tar.bz2>

Nó rất hữu ích khi khử với kho lưu trữ lớn vì bạn không cần phải có gấp đôi kích thước không nén có sẵn trên hệ thống tệp đích (tệp tạm thời tar và tệp đầu ra) Nó cũng nhanh hơn khi bạn cần ít IO hơn.

Tất nhiên là cũng hoạt động khi nén quá:

tar -I lbzip2 -cvpf <file.tar.bz2> <file>

Kiểm tra tar --helpđể có thêm lựa chọn.


1
Một tùy chọn khác (ví dụ: nếu phiên bản "tar" của bạn không hiểu tùy chọn -I) làlbzip2 -dc file.tar.bz2 | tar xvf -
Wodin

5

bạn có thể sử dụng pbzip2 với -dcờ để "giải nén",

từ trang web:

  pbzip2 -d myfile.tar.bz2

Ví dụ này sẽ giải nén tệp "myfile.tar.bz2" thành tệp giải nén "myfile.tar". Nó sẽ sử dụng # bộ xử lý tự động phát hiện (hoặc 2 bộ xử lý nếu tự động phát hiện không được hỗ trợ).

Sau khi giải nén, bạn cần gỡ bỏ tệp với

 tar xf myfile.tar

Một tệp tar chỉ là một thùng chứa, mà bạn có thể áp dụng nhiều thuật toán nén, ví dụ, bạn có thể có ".tar.gz" hoặc ".tar.bz2" mà cả hai đều áp dụng các thuật toán nén khác nhau. Vì vậy, pbzip2 sẽ chỉ giải nén tệp lưu trữ nhưng nó sẽ không giải nén các tệp, sử dụng tarđể giải nén các tệp. Tar không nên mất nhiều thời gian vì kho lưu trữ đã không được nén và nó sẽ chỉ giải nén các tệp. (lưu ý rằng chúng tôi không sử dụng cờ 'z' hoặc cờ 'j' trong lệnh tar, điều này cho thấy chúng tôi cũng muốn giải nén tệp)


1
trang hướng dẫn có một số ví dụ hữu ích: manpages.ubfox.com/pbzip2
Savvas Radevic

@Sam Cảm ơn câu trả lời - bạn có thể trả lời bình luận tôi để lại câu trả lời khác không
user784637

2

lbzip2 có vẻ tốt hơn nhiều so với pbzip2 trong trường hợp của bạn vì nó có thể tăng tốc độ giải nén các tệp .bz2 tiêu chuẩn trong khi pbzip2 không làm được điều đó. (Chỉ cần kiểm tra nó - 17 giây cho lbzip2 so với 56 giây cho pbzip2 trên lõi tứ được tải một phần).

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.