सबसे अच्छा संपीड़न विधि?


53

मैं एक 16GB फ़ोल्डर को संपीड़ित करना चाहता हूं, लेकिन सबसे अच्छी विधि क्या है? tar.gz? tar.bz2 rar? 7z? क्या संग्रह छोटा होगा यदि मैं पहली बार किसी विधि में संपीड़ित करता हूं, तो संपीड़ित संग्रह को किसी नए फ़ोल्डर में कॉपी करता हूं, फिर किसी अन्य विधि में फिर से संपीड़ित करता हूं? मुझे इसे एक डीवीडी पर फिट करने की आवश्यकता है (आउटपुट शायद 8.5 जीबी, याद नहीं है) लेकिन "4370 एमबी" डालने से संपीड़ित फ़ाइल 2.5% हिस्सा बन जाती है।

BTW, उबंटू पर डिफ़ॉल्ट संपीड़न विधि क्या है?

जवाबों:


70

डिफ़ॉल्ट है gz। सबसे अच्छा परिणाम 7zहालांकि मुझे मिलता है ।

यहां 1.4 Gb वर्चुअलबॉक्स कंटेनर के लिए परिणाम दिए गए हैं:

यहाँ छवि विवरण दर्ज करें

सर्वश्रेष्ठ संपीड़न - MB में आकार:

7z 493
रार 523
bz2 592
lzh 607
gz 614
जेड 614
ज़िप 614
.राज 615
लोजो 737
चिड़ियाघर 890

स्रोत

यहाँ छवि विवरण दर्ज करें

इंस्टॉल करें I

 sudo apt-get install p7zip-full

धन्यवाद, मैंने पहले से ही सॉफ्टवेयर केंद्र के माध्यम से 7z और rar स्थापित किया है। मैं 7z के साथ एक कोशिश दे दूँगा।
अमांडा

1
ये परिणाम कहां से आए? प्रत्येक एल्गोरिथ्म के लिए, संपीड़न अनुपात और गति उस पर बहुत निर्भर करती है जो आप संपीड़ित करने की कोशिश कर रहे हैं। से आने वाले कुछ डेटा को संपीड़ित करने का प्रयास करें /dev/urandom: आपको प्रत्येक प्रयास में अलग-अलग परिणाम मिलेंगे। या कोशिश करें /dev/zero: bzip2 विजेता (अनुपात के लिए) है।
एंड्रिया कोरबेलिनी

1
@AndreaCorbellini लिंक उत्तर में है इसलिए इसे क्लिक करें !? और जैसा मैंने कहा: यह 1.4 वर्चुअलबॉक्स कंटेनर पर आधारित है। मैं सहमत हूं कि संपीड़न इस बात पर बहुत निर्भर करता है कि यह किस फाइल पर है लेकिन कुछ वर्षों के अनुभव से 7z उन फ़ाइलों के लिए बेहतर प्रतीत होता है जो मेरे पास होती हैं (ज्यादातर सॉफ्टवेयर और बाइनरी डेटा फाइलें)
रिनविंड

1
@ रिनविंड: मुझे वास्तव में खेद है, मैंने सोर्स लिंक नहीं देखा ।
एंड्रिया कोरबेलिनी 18

1
@AndreaCorbellini यह ठीक है;) चलो आशा करते हैं कि अमांडा परिणाम वापस रिपोर्ट करें: +
रिनजविंड

14

यह सवाल बहुत पुराना है, लेकिन शायद किसी को यह समाधान उपयोगी लगता है:

का उपयोग करें rzip, के बाद tar। यह पहली बार एक शब्दकोश विधि का उपयोग करके 900 एमबी बड़े डेटा ब्लॉक को संपीड़ित करता है, और फिर इसे साफ किए गए डेटा को सौंप देता है bzip2। यह अन्य मजबूत संपीड़न उपकरणों ( bzip2, lzma) की तुलना में बहुत तेज है , और कुछ फाइलें इसे संपीड़ित करती हैं bzip2या इससे भी बेहतर है lzma

हां, gzलिनक्स पर डिफ़ॉल्ट संपीड़न उपकरण है। यह तेज़ है, और इसकी उम्र के बावजूद स्रोत कोड जैसी पाठ फ़ाइलों को संपीड़ित करने में यह अभी भी बहुत अच्छे परिणाम देता है। एक और मानक उपकरण है bzip2, हालांकि यह बहुत धीमा है।

जोड़: lrzip नया है और rzip के सिद्धांत का विस्तार करता है। यह भी असीमित ब्लॉक आकार, और संपीड़न विधियों (LZMA, Bzip2, Gzip, LZO, ZPAQ या कोई नहीं) का एक विकल्प का समर्थन करता है। LZMA मानक है। बैकअप के लिए या यदि आप अन्य लिनक्स / बीएसडी उपयोगकर्ताओं के साथ अधिक डेटा साझा करते हैं, तो यह वास्तव में उपयोगी हो सकता है।


मुझे लगता है कि आपका मतलब 900 kB ब्लॉक था? 900 एमबी थोड़ा बड़ी होगी ...
बाइट कमांडर

1
यह वास्तव में 900 एमबी है। देखें en.wikipedia.org/wiki/Rzip
user258532

2

मैं एक के लिए चुनते हैं LZMA। इसमें सबसे छोटा बाइट ओवरहेड है और इसमें मजबूत संपीड़न अनुपात है। ज़िप और LZMA के बीच तुलना: मैंने seq.txtPHP कोड वाली दो फाइलें बनाई हैं

$s = '0123456789'; $str = ''; for ($i=0; $i < 1000000; $i++) $str .= $s[$i%10].($i%10==9 ? "\n":""); file_put_contents('seq.txt', $str);

जो डेटा के 0..9 अंकों ~ 1Mb और rnd.txtPHP कोड के साथ दोहरा ब्लॉक रखता है

$s = '0123456789'; $str = ''; for ($i=0; $i < 1000000; $i++) $str .= $s[rand(0,9)].($i%10==9 ? "\n":""); file_put_contents('rnd.txt', $str);

जो 0..9 अंकों के यादृच्छिक ब्लॉक रखता है ~ 1 एमबी डेटा।

संपीड़न परिणाम:

  • seq.txt, rnd.txt - 1100000 बाइट्स
  • seq.txt.zip - 2502 बाइट्स
  • rnd.txt.zip - 515957 बाइट्स
  • seq.txt.lzma - 257 बाइट्स
  • rnd.txt.lzma - 484939 बाइट्स

दबाव अनुपात:

  • ज़िप -> "seq.txt" -> 99.772%
  • ज़िप -> "rnd.txt" -> 53.094%
  • LZMA -> "seq.txt" -> 99.976%
  • LZMA -> "rnd.txt" -> 55.914%

इसलिए LZMA में जिप की तुलना में 0.2% अधिक प्रभावी रूप से अनुक्रमिक डेटा होता है
और ज़िप की तुलना में यादृच्छिक डेटा 2.8% अधिक प्रभावी होता है।

निश्चित रूप से LZMA जीत के लिए!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.