Bölüm 1: Performans
İşte iki ayrı iş akışının ve ne yaptıklarının bir karşılaştırması.
blah.tar.gz
Örneğin, sıkıştırılmamış halde 2 GB olan 1 GB gzip sıkıştırılmış veri olan bir dosyanız var (yani% 50 sıkıştırma oranı).
Ayrı ayrı arşivleme ve sıkıştırma yapacak olsaydınız, bunu yaratma şekliniz şöyle olurdu:
tar cf blah.tar files ...
Bu , sıkıştırılmamış formun blah.tar
sadece bir toplanmasıyla sonuçlanacaktır files ...
.
O zaman yaparsın
gzip blah.tar
Bu blah.tar
diskten içeriğini okuyacak, onları gzip sıkıştırma algoritması ile sıkıştıracak, içeriği yazacak blah.tar.gz
, sonra da dosyadaki bağlantıyı kaldıracak (sil) blah.tar
.
Şimdi, sıkıştırmayı açalım!
Yol 1
You have blah.tar.gz
, öyle ya da böyle.
Koşmaya karar verdin:
gunzip blah.tar.gz
Bu irade
- 1 GB sıkıştırılmış veri içeriğini OKUYUN
blah.tar.gz
.
- Sıkıştırılmış verileri
gzip
bellekteki sıkıştırıcıdan PROCESS .
- Bellek arabelleği bir "blok" değerinde veriyle dolarken, sıkıştırılmamış verileri
blah.tar
diskteki dosyaya YAZIN ve tüm sıkıştırılmış veriler okunana kadar tekrarlayın.
- Dosyanın bağlantısını kaldırın (silin)
blah.tar.gz
.
Şimdi, blah.tar
sıkıştırılmamış fakat içinde bir ya da daha fazla dosya bulunan ve yükü çok düşük veri yapısı olan bir diskiniz var . Dosya boyutu muhtemelen tüm dosya verilerinin toplamından büyük bir çift bayttır .
Sen koş
tar xvf blah.tar
Bu irade
- Dosya izinleri, dosya adları, dizinler vb. Bilgileri içeren 2 GB sıkıştırılmamış veri içeriğini
blah.tar
ve tar
dosya formatının veri yapılarını OKUYUN .
- 2 GB veri ve diske meta veri yazın. Bu, şunları içerir: veri yapısı / meta veri bilgilerinin uygun şekilde diskte yeni dosyalar ve dizinler oluşturmaya dönüştürülmesi veya mevcut dosyaların ve dizinlerin yeni veri içerikleriyle yeniden yazılması.
Bu süreçte diskten READ yaptığımız toplam veri 1 GB (gunzip için) + 2 GB (tar için) = 3 GB idi.
Bu süreçte WROTE disk diske toplam veri 2 GB (gunzip için) + 2 GB (tar için) + metadata için birkaç bayt = yaklaşık 4 GB oldu.
Yol 2
You have blah.tar.gz
, öyle ya da böyle.
Koşmaya karar verdin:
tar xvzf blah.tar.gz
Bu irade
blah.tar.gz
Bir seferde bir bloğun 1 GB sıkıştırılmış veri içeriğini hafızaya OKUYUN .
- Sıkıştırılmış verileri
gzip
bellekteki sıkıştırıcıdan PROCESS .
- Bellek tampon doldukça, bu olacak boru veri, bellekte, üzerine
tar
vs. meta veriler ve sıkıştırılmamış dosya verileri hakkında bilgi okuyacaktır dosya formatı ayrıştırıcı,.
- Bellek arabelleği
tar
dosya ayrıştırıcısında dolduğunda , dosyalar ve dizinler oluşturarak ve sıkıştırılmamış içeriklerle doldurularak sıkıştırılmamış verileri diske yazar.
Bu süreçte diskten READ yaptığımız toplam veri 1 GB sıkıştırılmış veri, dönemdi.
Bu işlem sırasında WROTE tarafından disklere yazdığımız toplam veri 2 GB sıkıştırılmamış veri + meta veri için bir kaç bayt = yaklaşık 2 GB idi.
Dikkat ederseniz, Yol 2'deki disk G / Ç miktarı, sıkıştırma oranındaki farklılıkları ayarlayarak , veya 7-Zip programları tarafından gerçekleştirilen disk G / Ç ile aynıdır .Zip
Sıkıştırma oranı sizin endişeniz ise, Xz
kapsüllemek için kompresörü kullanın tar
ve 7-Zip için mevcut olan en gelişmiş algoritma kadar verimli olan LZMA2'ed TAR arşivine sahip olun.
Bölüm 2: Özellikler
tar
Unix izinlerini dosya meta verileri içinde depolar ve çok iyi bilinmektedir ve her türlü farklı izin, sembolik bağlantı vb. içeren bir dizini başarılı bir şekilde paketlemek için test edilmiştir. Tek bir dosyaya veya akışa dönüştürün, ancak mutlaka sıkıştırmasına gerek yoktur (sıkıştırma yararlı ve sık kullanılsa da).
Bölüm 3: Uyumluluk
Birçok araç, kaynak veya ikili biçimde .tar.gz veya .tar.bz2 olarak dağıtılır, çünkü "en düşük ortak payda" dosya biçimidir: çoğu Windows kullanıcısının da .zip veya .rar sıkıştırıcılarına, çoğu Linux kurulumuna erişimi vardır. , en temel olanı bile, kaç yaşında veya terk edilmiş olursa olsun, en azından tar ve gunzip'e erişebilecek. Android yazılımları bile bu araçlara erişebilir.
Modern dağıtımları çalıştıran izleyicileri hedef alan yeni projeler, .tar.xz (gzip veya bzip2'den daha iyi sıkıştırılan Xz (LZMA) sıkıştırma formatını kullanarak) veya .7z gibi daha modern bir formatta çok iyi bir şekilde dağılabilir. ZIP veya RAR dosyası, birden fazla dosyayı tek bir dosyada kapsüllemek için bir düzeni hem sıkıştırıp hem de belirttiği biçimde biçimlendirir.
Sen .7z müzik gibi yepyeni biçimlerde çevrimiçi indirme mağazalarından satılan olmadığını aynı nedenle daha sık kullanılan görmüyorum Opus içinde veya video WebM . Eski ya da çok temel sistemler çalıştıran insanlarla uyumluluk.
tar xvzf
daha zor7z -x
...