Adakah perintah linux untuk melakukan dekompresi paralel file tar.bz2?

17

Saya memiliki file yang agak besar (~ 50GB) dan perlu beberapa saat untuk dijalankan

tar xvf file.tar.bz2

di atasnya. Saya mengetahui program yang dapat melakukan kompresi paralel untuk file bzip2 tetapi tidak mengetahui program yang dapat melakukan dekompresi paralel untuk file bzip2.

Apakah ada program yang dapat mencapai ini? Apa sintaks yang tepat dari perintah yang digunakan untuk mengekstrak dari file?

Saya menggunakan ubuntu 12.04

pengguna784637
sumber

Jawaban:

22

lbzip2dan pbzip2merupakan alat yang dapat Anda gunakan untuk kompresi paralel dan dekompresi.

Pemakaian:

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

-d Opsi digunakan untuk dekompresi.

Untuk menginstal paket-paket ini:

Instal lbzip2jenis lbzip2 :

sudo apt-get install lbzip2

Instal pbzip2tipe pbzip2 :

sudo apt-get install pbzip2
devav2
sumber
Jadi jika saya mengerti dengan benar, saya perlu dekompresi dan kemudian undar? Suka 2 perintah yang bertentangan tar xvf?
user784637
1
Ya saat Anda menjalankannya lbzip2 -d -n 2 file.tar.bz2akan memberikan file tar. Yang perlu diuraikan.
devav2
1
Dari halaman manual pbzip2 (lbzip2 menceritakan kisah serupa): "File yang dikompres dengan pbzip2 juga akan mendapatkan peningkatan kecepatan yang cukup ketika didekompresi menggunakan pbzip2. File yang dikompresi menggunakan bzip2 tidak akan melihat speedup karena bzip2 mengemas data menjadi bongkahan tunggal. itu tidak dapat dibagi antara prosesor. "
Tapio
1
@Tapio Berikut ini adalah Deskripsi untuk lbzip2"Mengompresi atau mendekompresi operan FILE atau input standar ke file biasa atau output standar, dengan memanggil libbz2 Julian Seward dari beberapa utas. Utilitas lbzip2 menggunakan beberapa utas dan splitter terikat-input bahkan ketika mendekompresi file .bz2 dibuat oleh bzip2 standar (tetapi lihat BUGS di bawah). "
devav2
1
Dari jawaban saja, saya akan mengerti kedua program perlu digunakan bersama entah bagaimana - tetapi mereka tampaknya menjadi alternatif, sebenarnya? (Dikatakan "lbzip2 dan pbzip2 adalah alat ...", "Penggunaan: lbzip2 ... pbzip2 ...", "untuk menginstal ini ...")
Volker Siegel
11

Anda dapat mengompres arsip Anda dengan satu perintah menggunakan -Iopsi tar . Ini memberi Anda kemampuan untuk menggunakan utilitas kompresi yang mendukung -dopsi.

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

Itu datang sangat berguna ketika berhadapan dengan arsip besar karena Anda tidak perlu memiliki dua kali ukuran tidak terkompresi yang tersedia pada sistem file target ( file tar temp dan file output) Ini juga lebih cepat karena Anda membutuhkan disk IO yang jauh lebih sedikit.

Tentu saja itu berfungsi saat mengompresi juga:

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

Periksa tar --helpopsi lainnya.

Ludovic Ronsin
sumber
1
Opsi lain (mis. Jika versi "tar" Anda tidak mengerti opsi -I) adalahlbzip2 -dc file.tar.bz2 | tar xvf -
Wodin
5

Anda dapat menggunakan pbzip2 dengan -dflag untuk "decompress",

dari halaman manual:

  pbzip2 -d myfile.tar.bz2

Contoh ini akan mendekompres file "myfile.tar.bz2" ke dalam file yang di-decompressed "myfile.tar". Ini akan menggunakan prosesor yang terdeteksi secara otomatis # (atau 2 prosesor jika deteksi otomatis tidak didukung).

Setelah didekompresi, Anda perlu menguraikan file dengan

 tar xf myfile.tar

File tar hanyalah sebuah wadah, di mana Anda dapat menerapkan beberapa algoritma kompresi, misalnya, Anda dapat memiliki ".tar.gz" atau ".tar.bz2" yang keduanya memiliki algoritma kompresi yang berbeda. Jadi pbzip2 hanya akan mengompres arsip tetapi tidak akan mengekstrak file, gunakan taruntuk mengekstrak file. Tar seharusnya tidak butuh waktu lama karena arsip sudah tidak terkompresi dan itu hanya akan mengekstrak file. (perhatikan bahwa kita tidak menggunakan flag 'z' atau flag 'j' dalam perintah tar, yang mengindikasikan bahwa kita juga ingin mendekompres file)

Sam
sumber
1
halaman manual memiliki beberapa contoh berguna: manpages.ubuntu.com/pbzip2
Savvas Radevic
@ Sam Terima kasih atas jawabannya
dapatkah
2

lbzip2 tampaknya jauh lebih baik daripada pbzip2 dalam kasus Anda karena ia dapat mempercepat dekompresi file .bz2 standar sementara pbzip2 tidak melakukan itu. (Baru mengujinya - 17 detik untuk lbzip2 vs 56 detik untuk pbzip2 pada quad core yang dimuat sebagian).

Stefan Reich
sumber