ซอฟต์แวร์บีบอัดไฟล์ใดสำหรับ linux ที่ให้การลดขนาดสูงสุด? [ปิด]


51

ฉันบีบอัดไฟล์เป็นตัน สิ่งที่ฉันกำลังบีบอัดส่วนใหญ่เป็นเพียงรหัสดังนั้นฉันจำเป็นต้องใช้การสูญเสียการบีบอัดน้อยลง ฉันสงสัยว่ามีอะไรที่ลดขนาดได้ดีกว่านี้หรือไม่ ไม่สำคัญว่าจะใช้เวลาในการบีบอัดหรือขยายขนาดเท่าไรก็ได้ ไม่มีใครรู้ว่าซอฟต์แวร์เช่นนี้ใน Linux? หรือ 7zip นั้นดีที่สุด?

คำตอบ:


37

7zipเป็นเครื่องอัด (เช่น PKZIP) มากกว่าคอมเพรสเซอร์ สามารถใช้งานได้กับ Linux แต่สามารถสร้างไฟล์บีบอัดที่เก็บถาวรในไฟล์ปกติเท่านั้นไม่สามารถบีบอัดสตรีมได้ ไม่สามารถจัดเก็บแอตทริบิวต์ไฟล์ Unix ส่วนใหญ่เช่นการเป็นเจ้าของ ACL แอตทริบิวต์ที่ขยายเพิ่มลิงก์ถาวร ...

บน Linux ในฐานะคอมเพรสเซอร์คุณได้xzใช้อัลกอริธึมการบีบอัดเช่นเดียวกับ7zip(LZMA2) คุณสามารถใช้มันเพื่อบีบอัดไฟล์เก็บถาวร tar

เช่นเดียวกับgzipและbzip2มีตัวแปรแบบขนานpixzที่สามารถใช้ประโยชน์จากโปรเซสเซอร์หลายตัวเพื่อเพิ่มความเร็วในการบีบอัด ( xzสามารถทำได้ตั้งแต่รุ่น 5.2.0 พร้อม-Tตัวเลือก) pixzแตกต่างนอกจากนี้ยังสนับสนุนการจัดทำดัชนีบีบอัดtarเก็บซึ่งหมายความว่าจะสามารถดึงไฟล์เดียวโดยไม่ต้องบีบอัดไฟล์จากจุดเริ่มต้น


6
คุณสามารถขยายความแตกต่างระหว่าง "เครื่องอัด" และ "เครื่องอัด" ที่คุณทำที่นี่ได้หรือไม่?
mattdm

2
@mattdm คอมเพรสเซอร์บีบอัดเท่านั้นอัดอัดหลายสิ่งลงในที่เก็บบีบอัด
Stéphane Chazelas

2
@mattdm แปลก มันเป็นคำศัพท์และความแตกต่างที่พบบ่อยมากใน 90s ดูเหมือนว่าจากการค้นหาของ google มันไม่ใช่กรณีอีกต่อไป
Stéphane Chazelas

6
บางทีมันอาจเป็นเรื่องของ DOS? ใน Unix ความแตกต่างระหว่างการบีบอัดและการเก็บถาวรนั้นเป็นเรื่องปกติ (ตามที่คุณพูด) แต่ฉันไม่เคยได้ยินคำว่า "compactor"
mattdm

1
@mattdm, คอมแพคคือไฟล์บีบอัด + ไฟล์บีบอัด (อาจมีดัชนี, สมาชิกอาจถูกบีบอัดแยกกัน), การเก็บถาวรไม่ได้หมายถึงการบีบอัด ไม่ใช่สิ่ง DOS แต่อาจเป็นสิ่งฝรั่งเศส Googling usenet archives ฉันดูเหมือนจะเจอบทความของฉันเท่านั้นดังนั้นมันอาจเป็นการประดิษฐ์ของฉันได้ดี แต่ฉันเชื่ออย่างยิ่งว่ามันไม่ใช่
Stéphane Chazelas

65

lrzipคือสิ่งที่คุณกำลังจริงๆมองหาโดยเฉพาะอย่างยิ่งถ้าคุณกำลังอัดรหัสที่มา!

การอ้างอิง README:

นี่คือโปรแกรมบีบอัดที่ปรับให้เหมาะสำหรับไฟล์ขนาดใหญ่ ยิ่งไฟล์มีขนาดใหญ่ขึ้นเท่าใดและยิ่งมีหน่วยความจำมากเท่าไหร่ข้อดีของการบีบอัดก็จะยิ่งดีขึ้นโดยเฉพาะเมื่อไฟล์มีขนาดใหญ่กว่า 100MB ข้อได้เปรียบสามารถเลือกได้ทั้งขนาด (เล็กกว่า bzip2) หรือความเร็ว (เร็วกว่า bzip2) [... ] คุณสมบัติที่เป็นเอกลักษณ์ของ lrzip คือพยายามใช้ประโยชน์สูงสุดจาก ram ที่มีอยู่ในระบบของคุณตลอดเวลาเพื่อให้ได้ประโยชน์สูงสุด

lrzip ทำงานโดยการสแกนและลบข้อมูลทางไกลซ้ำซ้อนเป็นครั้งแรกด้วยอัลกอริทึมที่ใช้ rzip จากนั้นทำการบีบอัดข้อมูลที่ไม่ใช่ข้อมูลซ้ำซ้อน

Con Kolivas เป็นตัวอย่างที่ยอดเยี่ยมในรายชื่อผู้รับจดหมาย Linux Kernel ; ในนั้นเขาบีบอัด tarball Linux ขนาด 10.3GB จำนวนสี่สิบเคอร์เนลออกมาที่ 163.9MB (1.6%) และทำเร็วกว่า xz เขาไม่ได้ใช้อัลกอริธึมผ่านรอบสองที่ก้าวร้าวที่สุด!

ฉันแน่ใจว่าคุณจะได้ผลลัพธ์ที่ยอดเยี่ยมในการบีบอัด tarballs ขนาดใหญ่ของซอร์สโค้ด :)

sudo apt-get install lrzip

ตัวอย่าง (ใช้ค่าเริ่มต้นสำหรับตัวเลือกอื่น ๆ ):

การบีบอัดแบบอัลตร้า, ช้า:

lrzip -z file

สำหรับโฟลเดอร์เพียงแค่เปลี่ยนlrzipสำหรับlrztar


1
ฉันยังสามารถแข่งขันที่ใช้lrzipงานได้ดีเยี่ยมสำหรับการtar/cpio/paxแบ็คอัพไฟล์ระบบ 'ed เพราะพวกมันมักจะมีความซ้ำซ้อนระยะยาวจำนวนมากสิ่งที่lrzipดีในการบีบอัด
Franki

10
ฉันได้ลองlrzipแล้วและpixzใช้ไฟล์ข้อความขนาด 19 GB ทั้งสองใช้เวลาประมาณครึ่งชั่วโมงในการบีบอัดไฟล์ (บนเครื่อง hexa-core) แต่lrzไฟล์มีขนาดครึ่งหนึ่งของxzไฟล์ (2.7 กับ 4.4 GB) ดังนั้นการลงคะแนนอีกครั้งสำหรับคำตอบนี้แทน
fnl

3
@ Frankanki โดย 'การประกวด' คุณหมายถึง 'attest' หรือไม่?
mitchus

รู้สึกเหมือน Pied Piper!
Denys Vitali

1
คุณรู้หรือไม่ว่าความแตกต่างระหว่าง lrzip และ rzip คืออะไร? ดูเหมือนว่า rzip จะออกวางจำหน่ายในปี 1998 ออกแบบมาให้ดีที่สุดในไฟล์ขนาดใหญ่ที่มีความซ้ำซ้อนทางไกลดังนั้นจึงดูเหมือน lrzip - แค่สงสัยว่า lrzip มาจาก rzip หรือไม่ (rzip จากrzip.samba.org )
Astara

6

หากคุณกำลังมองหาการลดขนาดที่ใหญ่ที่สุดโดยไม่คำนึงถึงความเร็วในการบีบอัดLZMAอาจเป็นตัวเลือกที่ดีที่สุดของคุณ

เมื่อเปรียบเทียบการบีบอัดต่างๆโดยทั่วไปการแลกเปลี่ยนคือเวลาเทียบกับขนาด gzipมีแนวโน้มที่จะบีบอัดและคลายความรวดเร็วในขณะที่ให้อัตราการบีบอัดที่ดี bzip2ค่อนข้างช้ากว่าgzipทั้งในการบีบอัดและเวลาในการบีบอัด แต่ให้อัตราการบีบอัดที่มากกว่า LZMAมีเวลาการบีบอัดที่ยาวที่สุด bzip2แต่ผลตอบแทนถัวเฉลี่ยอัตราส่วนที่ดีที่สุดในขณะที่ยังมีอัตราการบีบอัดสูงกว่าที่

แหล่งที่มา: 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
ฉันต้องไม่เห็นด้วยกับสิ่งนี้! อัดไฟล์ lossless ให้ปัจจัยที่ลดลงมากที่สุดโดยไม่คำนึงถึงความเร็วในการบีบอัดที่ทำงานบน GNU / Linux น่าจะเป็นอย่างใดอย่างหนึ่งหรือzpaq paq8lอย่างไรก็ตามพวกเขาช้ามากจนไม่คุ้มกับการใช้งานจริงมากที่สุด
Franki

@ Franki เจ๋งsudo apt-get install zpaqฉันทำการทดสอบบางอย่างตามวิกิว่าแอพจะเป็นปี 2009 ที่ใหม่ที่สุด แต่ก็ยังคงสูญเสียkgb (ที่ใช้ PAQ6) แต่ kgb นั้นช้ากว่ามาก ...
Aquarius Power

@ Franki จริงฉันเพิ่งพบว่าzpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tarบีบอัดมากกว่าkgb -9
Aquarius Power

4

(คำตอบที่อัปเดต) หากเวลาไม่สำคัญให้ใช้ ZPAQ v1.10 (หรือใหม่กว่า) เช่น:
zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tar (ตำแหน่งไฟล์ max.cfg อาจแตกต่างกันตรวจสอบรายชื่อไฟล์แพ็คเกจที่ติดตั้งไว้)

zpaqkgb -9 newFileName.kgb yourFileName.tarบีบอัดจริงมากกว่า
นั้นขึ้นอยู่กับอัลกอริทึมรุ่นเก่าPAQ6และช้ามาก ...
ฉันทดสอบกับคอมเพรสเซอร์อื่น ๆ เช่น 7zip, lrzip, bzip2, kgb .. และ zpaq ที่บีบอัดส่วนใหญ่!

ถ้าkgbคุณยังสนใจคุณอยู่: (เพราะมันเป็นทางเลือกแรกของฉันสำหรับคำตอบนี้ดังนั้นฉันจะเก็บข้อมูลไว้ที่นี่)
Ubuntu 14.04 มีkgb 1.0b4ให้รันsudo apt-get install kgbเพื่อติดตั้ง

ด้านล่างเป็นรุ่นเกี่ยวกับ windows ที่คุณสามารถลองใช้ / คอมไพล์kgbบน linux ได้ แต่ฉันไม่ประสบความสำเร็จ
สามารถพบเวอร์ชัน 2 beta2 บนSourceForgeแต่ไม่มีลินุกซ์ไบนารี คุณสามารถลองเรียกใช้ในคอนโซลด้วยwine kgb2_console.exe -a7 -m9(เมธอด-a6 -m9น่าจะเทียบเท่ากับวิธีที่ดีที่สุดใน 1.0b4 -a7เป็นของใหม่ใน 2 beta2) แม้ว่าฉันจะมีเสถียรภาพที่ดีขึ้นด้วยการติดตั้ง. NET 2.0 กับwinetricksและทำงานอยู่wine "KGB Archiver 2 .net.exe"(ฉันไม่ชอบการทำเช่นนั้นดังนั้นฉันจะใช้ Linux 1.0b4 ซึ่งมีผลเหมือนกับ 2 beta2)
อย่างไรก็ตามรุ่น 2 beta2 นั้นก็ควรได้รับรุ่นเนทิฟ Linux ด้วยเช่นกัน! บางทีสิ่งที่สามารถทำได้ด้วย MinGW ให้ดูสิ่งนี้แต่คำสั่งนี้ยังคงล้มเหลว:i586-mingw32msvc-g++ kgb2_console.cpp -o kgb. อาจลองรวบรวมด้วยdmcs(โมโน) ไหม ดูเคล็ดลับนี้


2

7zip ไม่ใช่เทคโนโลยีที่ไม่เหมือนใคร แต่รองรับวิธีการบีบอัดหลายวิธี (ดูวิกิพีเดีย 7z ในเรื่องนั้น)

ชุดของการทดสอบได้ดำเนินการกับเครื่องมือที่แตกต่างกันเป็นพิเศษสำหรับ C ไฟล์ที่มา ฉันไม่แน่ใจว่ามีเครื่องมือใดสำหรับ Linux หากยังคงมีอยู่ อย่างไรก็ตามคุณอาจทราบว่าอัลกอริทึมที่ดีที่สุดคือ PPM พร้อมการแก้ไข (PPMII แล้ว PPMZ)

หากคุณมีความสนใจในเครื่องมือคุณสามารถเรียกดูเว็บไซต์เป็นภาษารัสเซีย แต่ Google แปลภาษาอาจช่วยได้ มีการฝากไบนารีจำนวนมากซึ่งคุณสามารถใช้ (หรือไม่สามารถ) จาก Linux ด้วยไวน์หากจำเป็นจริงๆ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.