Perangkat lunak kompresi file apa untuk linux yang menawarkan pengurangan ukuran tertinggi? [Tutup]

51

Saya melakukan banyak kompresi file. Sebagian besar hal yang saya kompres hanya kode, jadi saya perlu menggunakan kompresi lebih sedikit. Saya bertanya-tanya apakah ada sesuatu yang menawarkan pengurangan ukuran yang lebih baik daripada 7zip. Tidak masalah berapa lama untuk mengompres, atau mendekompresi, ukuran adalah yang terpenting. Adakah yang tahu tentang peranti lunak seperti ini di Linux? Atau apakah 7zip yang terbaik?

Zach
sumber

Jawaban:

37

7ziplebih kompak (seperti PKZIP) daripada kompresor. Ini tersedia untuk Linux, tetapi hanya dapat membuat arsip terkompresi dalam file biasa, tidak dapat mengompres aliran misalnya. Itu tidak dapat menyimpan sebagian besar atribut file Unix seperti kepemilikan, ACL, atribut diperluas, tautan keras ...

Di Linux, sebagai kompresor , Anda punya xzyang menggunakan algoritma kompresi yang sama seperti 7zip(LZMA2). Anda dapat menggunakannya untuk mengompresi arsip tar.

Seperti untuk gzipdan bzip2, ada varian paralelpixz yang dapat memanfaatkan beberapa prosesor untuk mempercepat kompresi ( xzjuga dapat dilakukan secara native sejak versi 5.2.0 dengan -Topsi). The pixzvarian juga mendukung mengindeks terkompresi tararsip yang berarti itu dapat mengekstrak file tunggal tanpa harus uncompress file dari awal.

Stéphane Chazelas
sumber
6
Bisakah Anda memperluas perbedaan antara "pemadat" dan "kompresor" yang Anda buat di sini?
mattdm
2
@mattdm, kompresor hanya memampatkan, pemadat memadatkan beberapa hal menjadi arsip terkompresi.
Stéphane Chazelas
2
@mattdm, aneh. Itu adalah terminologi yang sangat umum dan perbedaan di tahun 90-an, sepertinya dari pencarian google, itu tidak lagi terjadi.
Stéphane Chazelas
6
Mungkin itu hal DOS? Di Unix, perbedaan antara kompresi dan pengarsipan umumnya dibuat (seperti yang Anda juga katakan), tapi saya belum pernah mendengar "compactor".
mattdm
1
@mattdm, well, compact adalah arsip + kompres (mungkin dengan pengindeksan, mungkin anggota dikompresi secara terpisah), pengarsipan tidak menyiratkan kompresi. Ini bukan hal DOS, tapi mungkin itu hal Perancis. Mengarsipkan arsip usenet di Google, saya sepertinya hanya menemukan artikel saya, jadi bisa jadi itu adalah penemuan saya, meskipun saya sangat yakin bukan.
Stéphane Chazelas
65

lrzip adalah apa yang benar - benar Anda cari, terutama jika Anda mengompresi kode sumber!

Mengutip README:

Ini adalah program kompresi yang dioptimalkan untuk file besar. Semakin besar file dan semakin banyak memori yang Anda miliki, semakin baik keunggulan kompresi yang akan diberikan, terutama setelah file lebih besar dari 100MB. Keuntungannya dapat dipilih menjadi ukuran (jauh lebih kecil dari bzip2) atau kecepatan (lebih cepat dari bzip2). [...] Fitur unik lrzip adalah mencoba memaksimalkan ram yang tersedia di sistem Anda setiap saat untuk keuntungan maksimal.

lrzip bekerja dengan pertama-tama memindai dan menghapus redundansi data jarak jauh dengan algoritma berbasis rzip, kemudian mengompresi data yang tidak redundan.

Con Kolivas memberikan contoh yang luar biasa di Mailing List Kernel Linux ; di mana ia mengkompres tarbal 10.3GB dari empat puluh Linux Kernel rilis ke 163,9MB (1,6%), dan melakukannya lebih cepat daripada xz. Dia bahkan tidak menggunakan algoritma second-pass paling agresif!

Saya yakin Anda akan mendapatkan hasil yang luar biasa mengompresi tarball besar dari kode sumber :)

sudo apt-get install lrzip

Contoh (menggunakan default untuk opsi lain):

Kompresi ultra, anjing lambat:

lrzip -z file

Untuk folder, ganti saja lrzipuntuklrztar

Alexander Riccio
sumber
1
Saya juga dapat kontes yang lrzipjuga bekerja sangat bagus untuk cadangan tar/cpio/paxpohon sistem file, karena biasanya berisi banyak redundansi jarak jauh, sesuatu yang lrzipsangat bagus dalam mengompresi.
Franki
10
Saya sudah mencoba lrzipdan pixzpada file teks 19 GB. Keduanya membutuhkan waktu sekitar setengah jam untuk mengompresnya (pada mesin hexa-core), tetapi lrzfile itu setengah ukuran xzfile (2,7 vs 4,4 GB). Jadi, pilih suara lain untuk jawaban ini.
fnl
3
@ Franki dengan 'kontes', maksud Anda 'membuktikan'?
mitchus
Terasa seperti Pied Piper!
Denys Vitali
1
Apakah Anda tahu apa perbedaan antara lrzip dan rzip? rzip sepertinya dirilis pada tahun 1998 yang dirancang untuk melakukan yang terbaik pada file yang sangat besar dengan redundansi jarak jauh, jadi kedengarannya mirip dengan lrzip - hanya ingin tahu apakah lrzip berasal dari rzip? (rzip dari rzip.samba.org )
Astara
6

Jika Anda mencari pengurangan ukuran terbesar terlepas dari kecepatan kompresi, LZMAkemungkinan merupakan pilihan terbaik Anda.

Ketika membandingkan berbagai kompresi, biasanya tradeoff adalah waktu vs. ukuran. gzipcenderung kompres dan dekompresi relatif cepat sambil menghasilkan rasio kompresi yang baik. bzip2agak lebih lambat daripada gzipkeduanya dalam waktu kompresi dan dekompresi, tetapi menghasilkan rasio kompresi yang lebih besar. LZMAmemiliki waktu kompresi terpanjang tetapi menghasilkan rasio terbaik sementara juga memiliki tingkat dekompresi lebih baik dari bzip2.

Sumber: 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

j883376
sumber
1
Saya harus tidak setuju dengan yang ini! Kompresor file lossless menyediakan faktor reduksi terbesar terlepas dari kecepatan kompresi yang bekerja pada GNU / Linux mungkin salah satu zpaqatau paq8l. Namun, mereka sangat lambat sehingga mereka tidak berguna untuk sebagian besar penggunaan di dunia nyata.
Franki
@ Franki keren sudo apt-get install zpaq, saya melakukan beberapa tes, menurut wiki , aplikasi itu akan menjadi yang terbaru 2009, tetapi masih kehilangan untuk kgb (yang menggunakan PAQ6), tetapi kgb JAUH lebih lambat ...
Aquarius Power
@ Franki sebenarnya, saya baru saja menemukan bahwa zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tarkompres lebih darikgb -9
Aquarius Power
4

(jawaban yang diperbarui) Jika waktu tidak masalah, gunakan ZPAQ v1.10 (atau yang lebih baru) ex .:
zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tar (lokasi file max.cfg dapat bervariasi, periksa daftar file paket yang Anda instal)

zpaqsebenarnya dikompresi lebih dari kgb -9 newFileName.kgb yourFileName.tar.
Itu didasarkan pada algoritma yang lebih tua PAQ6 , dan sangat lambat ...
Saya diuji dengan semua kompresor lain seperti 7zip, lrzip, bzip2, kgb .. dan zpaq paling terkompresi!

Jika kgbmasih menarik bagi Anda: (karena itu adalah pilihan awal saya pada jawaban ini, maka saya menyimpan informasinya di sini)
Ubuntu 14.04 memiliki kgb 1.0b4 , jalankan sudo apt-get install kgbuntuk menginstalnya.

Di bawah ini adalah tentang versi windows yang dapat Anda coba jalankan / kompilasi kgbdi linux, tetapi saya tidak berhasil.
Versi 2 beta2 dapat ditemukan di SourceForge , tetapi tidak ada binari Linux yang tersedia. Anda dapat mencoba menjalankannya di konsol dengan wine kgb2_console.exe -a7 -m9(metode -a6 -m9tampaknya setara dengan metode terbaik di 1.0b4, -a7baru dalam 2 beta2). Meskipun saya memiliki stabilitas yang lebih baik dengan menginstal. NET 2.0 dengan winetricks dan menjalankan wine "KGB Archiver 2 .net.exe"(saya tidak suka sedikit melakukan itu, jadi saya akan tetap dengan Linux 1.0b4 asli yang memiliki hasil yang hampir sama dengan 2 beta2).
Bagaimanapun, versi 2 beta2 juga layak mendapatkan versi asli Linux! Mungkin sesuatu dapat diselesaikan dengan MinGW, lihat ini , tetapi perintah ini masih gagal:i586-mingw32msvc-g++ kgb2_console.cpp -o kgb. Mungkin mencoba mengkompilasinya dengan dmcs(Mono)? lihat tip ini .

Aquarius Power
sumber
2

7zip bukanlah teknologi yang unik, tetapi mendukung beberapa metode kompresi yang berbeda (lihat wikipedia 7z tentang itu).

Satu set tes dilakukan dengan alat yang berbeda khusus untuk file sumber C. Saya tidak yakin alat mana yang ada untuk Linux jika masih ada. Namun, Anda dapat mencatat bahwa algoritma terbaik adalah PPM dengan modifikasi (PPMII, lalu PPMZ).

Jika Anda tertarik dengan alat-alatnya, Anda dapat menjelajahi situsnya, itu dalam bahasa Rusia tetapi google translate dapat membantu. Ada deposit besar binari , yang dapat Anda gunakan (atau tidak akan dapat) dari Linux dengan anggur, jika benar-benar diperlukan.

Yaroslav Nikitenko
sumber