Linux için hangi dosya sıkıştırma yazılımı en yüksek boyutta küçültme sunar? [kapalı]


51

Bir ton dosya sıkıştırma yapıyorum. Sıkıştırdığım öğelerin çoğu sadece kod, bu yüzden daha az sıkıştırma kullanmam gerekiyor. 7zip'ten daha iyi boyut küçültme sunan bir şey olup olmadığını merak ediyordum. Önemli olan boyutların sıkıştırılmasının veya sıkıştırılmasının ne kadar süreceği önemli değil. Linux'ta böyle bir yazılım bilen var mı? Yoksa 7zip en iyisi midir?

Yanıtlar:


37

7zipbir kompresörden çok bir kompaktördür (PKZIP gibi). Linux için kullanılabilir, ancak yalnızca düzenli dosyalarda sıkıştırılmış arşivler oluşturabilir, örneğin bir akışı sıkıştıramaz. Sahiplik, ACL'ler, genişletilmiş özellikler, sabit bağlantılar gibi Unix dosya özniteliklerinin çoğunu depolayamıyor ...

Linux'ta, bir kompresör olarak , (LZMA2) ile xzaynı sıkıştırma algoritmasını kullanan bir sistem var 7zip. Tar arşivlerini sıkıştırmak için kullanabilirsiniz.

Bunun gibi gzipve sıkıştırmayı hızlandırmak için birkaç işlemciyi kaldırabilen bzip2bir paralel değişken pixzvar ( xzbu -Tseçenek , seçenekle birlikte sürüm 5.2.0'dan beri yerel olarak da yapılabilir ). pixzVaryant da destekler indeksleme sıkıştırılmış tarbaştan dosyanızı açmaya gerek kalmadan tek bir dosya ayıklamak mümkün olduğu anlamına gelir arşiv.


6
Burada yaptığınız "kompaktör" ve "kompresör" arasındaki ayrımı genişletebilir misiniz?
mattdm

2
@mattdm, bir kompresör sadece sıkıştırır, bir kompaktör birkaç şeyi sıkıştırılmış bir arşive sıkıştırır.
Stéphane Chazelas

2
@ mattdm, garip. 90'lı yıllarda çok yaygın bir terminoloji ve ayrımdı, google aramaya benziyor, artık durum böyle değil.
Stéphane Chazelas 10:14

6
Belki bir DOS olayıydı? Unix'te, sıkıştırma ve arşivleme arasındaki fark genellikle yapılır (sizin de söylediğiniz gibi), ancak "kompaktör" hiç duymadım.
mattdm

1
@mattdm, iyi, kompakt arşiv + sıkıştır (muhtemelen indeksleme, muhtemelen üyeleri ayrı ayrı sıkıştırılmış), arşivleme sıkıştırma anlamına gelmez. Bu bir DOS olayı değil, ama muhtemelen Fransız bir şeydi. Googling usenet arşivleri, sadece benim makalelerime rastlıyor gibiyim, bu yüzden benim buluşum olabilirdi, öyle olmasa da şiddetle.
Stéphane Chazelas 10:14

65

lrzip sen olduğun şey gerçekten , arayan özellikle kaynak kodunu sıkıştırarak eğer!

README'den alıntı:

Bu, büyük dosyalar için optimize edilmiş bir sıkıştırma programıdır. Dosya ne kadar büyükse ve o kadar fazla hafızaya sahipseniz, özellikle dosyalar 100 MB'tan büyük olduğunda, bu sağladığı sıkıştırma avantajı o kadar iyi olur. Avantaj, boyut (bzip2'den çok daha küçük) veya hız (bzip2'den çok daha hızlı) olarak seçilebilir. [...] lrzip'in benzersiz özelliği, maksimum faydayı sağlamak için sisteminizdeki mevcut ramdan en iyi şekilde yararlanmaya çalışmasıdır.

lrzip, önce rzip tabanlı bir algoritmayla uzun mesafeli veri fazlalığını tarayarak ve kaldırarak, sonra da gereksiz olmayan verileri sıkıştırarak çalışır.

Con Kolivas , Linux Çekirdek Posta Listesinde harika bir örnek sunar ; burada 10.3 GB kırk Linux çekirdeği sıkıştırdı ve 163.9 MB'a (% 1.6) kadar salıverdi ve xz'den daha hızlı yaptı. En agresif ikinci geçiş algoritmasını bile kullanmıyordu!

Büyük kaynak kodları içeren kaynak kodları sıkıştırarak harika sonuçlar elde edeceğinize eminim :)

sudo apt-get install lrzip

Örnek (diğer seçenekler için varsayılanı kullanma):

Ultra sıkıştırma, köpek yavaş:

lrzip -z file

Klasörler için sadece değiştirmek lrzipiçinlrztar


1
Ayrıca, sistem dosyalarının kopyalandığı ağaçların lrzipyedeklenmesi için de gerçekten iyi çalıştığını söyleyebilirim tar/cpio/pax, çünkü bunlar genellikle çok fazla uzun menzilli fazlalık içeriyor, bu lrzipda sıkıştırmada gerçekten iyi bir şey .
Franki

10
Denedim lrzipve pixz19 GB metin dosyası. Her ikisi de onu sıkıştırmak için yaklaşık yarım saat sürdü (heksa çekirdekli bir makinede), ancak lrzdosya dosyanın boyutunun yarısı kadardı xz(2.7 ve 4.4 GB). Yani, bunun yerine bu cevap için başka bir oy.
Ocak'ta 15

3
@Franki 'yarışma' derken, 'attest' demek mi istiyorsun?
mitchus

Alaca Piper gibi geliyor!
Denys Vitali

1
Rzip ve rzip arasındaki farkın ne olacağını biliyor musunuz? rzip, 1998'de piyasaya sürülen uzun mesafeli fazlalıklı çok büyük dosyalarda en iyisini yapmak için tasarlanmış gibi görünüyor; (rzip.samba.org sitesinden rzip )
Astara

6

Sıkıştırma hızından bağımsız olarak en büyük boyut küçültmeyi arıyorsanız LZMA, muhtemelen en iyi seçenek.

Çeşitli kompresyonları karşılaştırırken, genellikle tradeoff zamana karşı büyüklüktedir. gzipİyi bir sıkıştırma oranı elde ederken nispeten hızlı bir şekilde sıkıştırma ve açma eğilimindedir. hem sıkıştırma hem de dekompresyon süresinden bzip2biraz daha yavaştır gzip, ancak daha büyük sıkıştırma oranları sağlar. LZMAen uzun sıkıştırma süresine sahiptir, ancak aynı zamanda daha iyi bir dekompresyon oranına sahipken, en iyi oranları verir bzip2.

Kaynaklar: http://bashitout.com/2009/08/30/Linux-Compression-Comparison-GZIP-vs-BZIP2-vs-LZMA-vs-ZIP-vs-Compress.html

http://tukaani.org/lzma/benchmarks.html


1
Buna katılmamalıyım! GNU / Linux üzerinde çalışan sıkıştırma hızına bakılmaksızın en büyük indirgeme faktörünü sağlayan kayıpsız dosya kompresörü muhtemelen ya zpaqda öyledir paq8l. Ancak, o kadar yavaşlar ki gerçek dünyadaki çoğu kullanım için pratik değiller.
Franki

@Franki cool sudo apt-get install zpaq, bazı testler yaptım, wiki'ye göre , bu uygulama en yeni 2009 olacaktı, ama yine de kgb için kaybediyor (PAQ6 kullanan), ancak kgb ÇOK daha yavaş ...
Kova Gücü

@Franki aslında, zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tardaha fazlasını sıkıştırdığını buldumkgb -9
Aquarius Power

4

(güncellenmiş cevap) Eğer zaman önemli değilse, ZPAQ v1.10 (veya daha yenisi) ex: kullanın
zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tar (max.cfg dosya konumu değişebilir, yüklü paket dosya listenizi kontrol edin)

zpaqaslında daha fazla sıkıştırılmış kgb -9 newFileName.kgb yourFileName.tar.
Bu eski PAQ6 algoritmasına dayanıyor ve çok yavaş ...
7zip, lrzip, bzip2, kgb .. ve zpaq gibi sıkıştırılmış diğer tüm kompresörlerle test ettim.

Eğer kgb: hala ilgilendiren tho (bu cevap benim ilk tercihi olarak, bu yüzden burada bilgiyi tutuyorum)
Ubuntu 14.04 sahiptir kgb 1.0b4 çalıştırın sudo apt-get install kgbyüklemek için.

Aşağıda kgbLinux üzerinde çalıştırmayı / derlemeyi deneyebileceğiniz bir Windows sürümü var , ancak başarılı olamadım.
Version 2 beta2, SourceForge'da bulunabilir , ancak Linux ikili dosyaları mevcut değildir. Konsolda çalıştırmayı deneyebilirsiniz wine kgb2_console.exe -a7 -m9( -a6 -m9yöntem, 1.0b4'teki en iyi yönteme eşdeğer görünüyor -a7, 2 beta2'de yeni). Her ne kadar winetricks ile .NET 2.0 yükleyerek ve çalıştırarak daha iyi bir kararlılığa sahip olsam dawine "KGB Archiver 2 .net.exe" (bunu yapmaktan hoşlanmıyorum, bu yüzden 2 beta2 ile hemen hemen aynı sonucu alan yerel Linux 1.0b4'e bağlı kalacağım).
Her neyse, sürüm 2 beta2 de bir Linux yerli sürümünü çok hak ediyor! Belki bir şey MinGW ile gerçekleştirilebilir, bakınız bu , ancak bu komut yine kötü başarısız:i586-mingw32msvc-g++ kgb2_console.cpp -o kgb. dmcs(Mono) ile derlemeye çalışılabilir mi? bu ipucuna bakınız .


2

7zip benzersiz bir teknoloji değildir, ancak birkaç farklı sıkıştırma yöntemini destekler (bu konuda wikipedia 7z'ye bakınız).

C kaynak dosyaları için özel olarak farklı araçlarla bir dizi test yapıldı. Hala varsa, hangi araçların Linux için bulunduğundan emin değilim. Bununla birlikte, en iyi algoritmanın modifikasyonlu PPM olduğunu (PPMII, ardından PPMZ) not edebilirsiniz.

Araçlarla ilgileniyorsanız, siteye göz atabilirsiniz, Rusçadır ancak google çeviri yardımcı olabilir. Gerçekten gerekirse Linux'tan şarap ile kullanabileceğiniz (veya kullanamayacağınız) büyük bir ikili dosya deposu var .

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.