Herhangi bir linux komutu tar.bz2 dosyasının paralel dekompresyonunu gerçekleştirmek için?


17

Oldukça büyük bir dosyam var (~ 50GB) ve çalıştırılması biraz zaman alıyor

tar xvf file.tar.bz2

üstünde. Bzip2 dosyaları için paralel sıkıştırma yapabilen, ancak bzip2 dosyaları için paralel açma yapabilen programların farkında olmayan programların farkındayım.

Bunu başarabilecek program var mı? Dosyadan ayıklamak için kullanılacak komutun tam sözdizimi nedir?

Ubuntu 12.04 kullanıyorum

Yanıtlar:


22

lbzip2ve pbzip2paralel sıkıştırma ve açma için kullanabileceğiniz araçlardır.

Kullanımı:

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

-d dekompresyon için kullanılır.

Bu paketleri yüklemek için:

lbzip2 Lbzip2'yi yükle türü:

sudo apt-get install lbzip2

pbzip2 Pbzip2'yi yükle türü:

sudo apt-get install pbzip2

Eğer doğru anlarsam, sıkıştırmasını açmam ve sonra açmam gerekir mi? Bunun yerine 2 komut gibi tar xvfmi?
user784637

1
Evet, çalıştırdığınızda lbzip2 -d -n 2 file.tar.bz2bir tar dosyası verecektir. Hangi yıldız işareti kaldırılması gerekiyor.
devav2

1
Pbzip2'nin man sayfasından (lbzip2 benzer bir hikaye anlatır): "pbzip2 ile sıkıştırılan dosyalar pbzip2 kullanılarak açıldığında da önemli bir hız kazanır. Bzip2 kullanılarak sıkıştırılan dosyalar hızlandırmayı tek bir yığın halinde paketlediğinden işlemciler arasında bölünemez. "
Tapio

1
@Tapio lbzip2"Julian Seward'ın libbz2'sini birden çok iş parçacığından çağırarak" DOSYA işlenenlerini veya standart girdiyi normal dosyalara veya standart çıktıya sıkıştır veya sıkıştır. " standart bzip2 tarafından oluşturulmuştur (ancak aşağıdaki HATALAR'a bakın). "
devav2

1
Sadece cevaptan, her iki programın da bir şekilde birlikte kullanılması gerektiğini anlıyorum - ama aslında alternatif gibi görünüyorlar mı? ("Lbzip2 ve pbzip2 araçlardır ...", "Kullanım: lbzip2 ... pbzip2 ...", "bunları yüklemek için ..." yazıyor)
Volker Siegel

11

Tar seçeneğini kullanarak arşivinizi tek bir komutla açabilirsiniz -I. -dSeçeneği destekleyen herhangi bir sıkıştırma yardımcı programını kullanma olanağı sağlar.

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

Hedef dosya sisteminde iki kat daha fazla sıkıştırılmamış boyuta sahip olmanız gerekmediği için büyük arşivle çözme yaparken çok kullanışlıdır (tar temp dosyası ve çıktı dosyası).

Tabii ki sıkıştırırken de çalışır:

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

tar --helpDaha fazla seçenek olup olmadığını kontrol edin .


1
Başka bir seçenek (örneğin, "tar" sürümünüz -I seçeneğini anlamıyorsa)lbzip2 -dc file.tar.bz2 | tar xvf -
Wodin

5

-d"sıkıştırmasını açmak" için pbzip2 bayrağını kullanabilirsiniz.

manpage'den:

  pbzip2 -d myfile.tar.bz2

Bu örnekte "myfile.tar.bz2" dosyası, "myfile.tar" sıkıştırılmış dosyasına açılır. Otomatik algılanan işlemci sayısını (veya otomatik algılama desteklenmiyorsa 2 işlemci) kullanır.

Sıkıştırmayı açtıktan sonra dosyayı

 tar xf myfile.tar

Katran dosyası, yalnızca birden fazla sıkıştırma algoritması uygulayabileceğiniz bir kaptır, örneğin, her ikisinde de farklı sıkıştırma algoritmaları uygulanan bir ".tar.gz" veya ".tar.bz2" olabilir. Bu yüzden pbzip2 sadece arşivi açar, ancak dosyaları ayıklamaz, dosyaları ayıklamak için kullanın tar. Arşiv zaten sıkıştırılmamış olduğundan ve dosyaları ayıklayacağı için Tar uzun sürmemelidir. (tar komutunda 'z' bayrağını veya 'j' bayrağını kullanmadığımızı unutmayın, bu da dosyayı açmak istediğimizi gösterir)


1
kılavuz sayfanın bazı yararlı örnekleri vardır: manpages.ubuntu.com/pbzip2
Savvas Radevic

@Sam Cevabınız için teşekkürler - diğer cevapta bıraktığım yorumu cevaplayabilir misiniz
user784637

2

lbzip2, standart .bz2 dosyalarının dekompresyonunu hızlandırabildiği için pbzip2 bunu yapmazken, durumunuzda pbzip2'den çok daha iyi görünüyor. (Sadece test - lbzip2 için 17 saniye - kısmen yüklenmiş dört çekirdekli pbzip2 için 56 saniye).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.