बड़ी संख्या में फ़ाइलों के लिए सबसे तेज़ संपीड़न विधि क्या है?


14

मुझे लगभग 350GB कुल मिलाकर लगभग 350,000 काफी छोटी फ़ाइलों के साथ एक निर्देशिका को संपीड़ित करने की आवश्यकता है। मैं OSX का उपयोग कर रहा हूं और वर्तमान में मानक "कंप्रेस" टूल का उपयोग कर रहा हूं जो इस निर्देशिका को एक .zip फ़ाइल में परिवर्तित करता है। क्या ऐसा करने का एक तेज़ तरीका है?


आप शायद टार को हरा नहीं सकते, क्योंकि यह वास्तव में संपीड़ित नहीं करता है, केवल संग्रह, विशिष्ट विकल्पों के बिना जो इसे सक्षम करते हैं। जवाब में, मैं सबूत, कोई राय नहीं ... देखने के लिए अच्छा लगेगा
डैनियल बेक

1
निर्भर करता है कि आप कितना कम्प्रेशन चाहते हैं।
ta.speot.is

1
मैंने टार का उपयोग करके अंत किया और गति कारणों से इसे अभी तक संपीड़ित करने की कोशिश नहीं की। यह उस समय के लिए पूरा करने में सक्षम था जिसके लिए मुझे इसकी आवश्यकता थी। धन्यवाद!
स्पिक

@DanielBeck, टार के साथ समस्या यह है कि वे डायरेक्टरी ट्री नहीं दिखाते हैं। तो एक "दृश्य" प्राप्त करने के लिए, हमें उस पूरे टार को खोलना होगा। क्या टार के विकल्प हैं जो निर्देशिका दृश्य दिखाते हैं?
पचेरियर

जवाबों:


15

निर्देशिका के लिए मैं अधिकतम-संपीड़न के साथ एक tarपाइप का उपयोग करूंगा bzip2

जाने का एक सरल तरीका है,

टार cfj आर्काइव। tar.bz2 dir-to-be-संग्रहीत / 

यह बहुत अच्छा काम करता है यदि आप संग्रह से बाहर फ़ाइलों के छोटे सेट लाने का इरादा नहीं रखते
हैं और जब भी / जहां भी आवश्यक हो पूरी बात निकालने की योजना बना रहे हैं।
फिर भी, यदि आप फ़ाइलों का एक छोटा सा सेट प्राप्त करना चाहते हैं , तो यह बहुत बुरा नहीं है।

मैं ऐसे अभिलेखागार को कॉल करना filename.tar.bz2और ' xfj' विकल्प के साथ निकालना पसंद करता हूं ।

अधिकतम-संपीड़न पाइप इस तरह दिखता है,

tar cf - dir-to-be-archived / | bzip2 -9 -> ark.tar.bz2  
# ^ यहां से पाइप टारबॉल को आर्काइव फाइल में जिप-इन ^ करें। 

नोट: ' bzip2' विधि और अधिक संपीडन gzip' tar cfz' से नियमित की तुलना में धीमा हो जाता है ।

यदि आपके पास एक तेज़ नेटवर्क है और संग्रह को एक अलग मशीन पर रखा जाने वाला है,
तो आप पूरे नेटवर्क में एक पाइप के साथ गति कर सकते हैं (प्रभावी रूप से दो मशीनों का एक साथ उपयोग कर सकते हैं)।

tar cf - dir / | ssh उपयोगकर्ता @ सर्वर "bzip2 -9 -> /target-path/archive.tar.bz2"  
# ^ पाइप पर टैरबॉल नेटवर्क पर जिप करने के लिए ^ और रिमोट मशीन पर संग्रह।

कुछ संदर्भ,

  1. लिनक्स जर्नल: कम्प्रेशन टूल कम्पेयर , Jul 28, 2005
    • इसके द्वारा उल्लेखित मैक्सिममेशन साइट को भी संदर्भित करता हैDennis
  2. gzip बनाम bzip2 , 26 अगस्त, 2003
  3. एक त्वरित बेंचमार्क: Gzip बनाम Bzip2 बनाम LZMA , 31 मई 2005

2
प्रश्नकर्ता ने सबसे तेज़ विधि के लिए कहा, एक 100Gb टार्क को जीवन भर लेने के लिए! डिस्क स्पेस के साथ इतना सस्ता होने की बात आती है कि अतिरेक के हर अंतिम संभव बिट को निचोड़ने के लिए एयन्स लेना संसाधनों का एक बेकार अपशिष्ट है, जब तक कि बिल्कुल आवश्यक न हो। सुस्त स्थान में अधिकांश डिस्क उपयोग के साथ, -1 के साथ टार को जिप करने से शायद काम काफी अच्छा हो जाएगा और कुछ महीनों पहले अगले कार्य पर जाने की अनुमति होगी!
एंडी ली रॉबिन्सन

जबकि मैं मानता हूं कि 100GB फ़ाइल संभवतः समग्रता में संपीड़ित करने के लायक नहीं है, मुझे नहीं लगता कि bzip2 1GB (कहो) की तुलना में 100GB के लिए रैखिक रूप से अधिक समय लेगा। या तो तरीके दिखाने के लिए कुछ सिद्धांत या डेटा देखना पसंद करेंगे।
निक

मैं समझता हूं कि bzip2 का शब्दकोश अनुकूली है, इसलिए यह लगातार फ़ाइल के अंत तक अपनी खोज विंडो के भीतर नए अतिरेक की तलाश कर रहा है। फ़ाइल के एन्ट्रापी की समरूपता के अधीन, यह अपेक्षाकृत रैखिक होना चाहिए। यह एक बुरा कंप्रेसर होगा जिसने यह मान लिया था कि फाइल की शुरुआत से ही उसे बाकी सभी को जल्दी से कंप्रेस करने में सक्षम होना चाहिए, लेकिन कुछ मामलों में यह हो सकता है कि सभी की जरूरत हो, हालांकि काम करने की तुलना में पुराने बढ़ने के बेहतर तरीके हैं अनुभवजन्य रूप से 100GB डेटासेट के साथ!
एंडी ली रॉबिन्सन

7

इस आदमी ने उस पर कुछ शोध किया। ऐसा प्रतीत होता है कि .zip बड़ी फ़ाइलों को तेज़ी से संपीड़ित करेगा। हालांकि, यह सबसे बड़े संपीड़न आकारों में से एक का उत्पादन करता है। यह भी दिखता है कि वह विंडोज उपयोगिताओं का उपयोग कर रहा था, लेकिन मैं शर्त लगा रहा हूं कि ओएसएक्स की उपयोगिता लगभग अनुकूलित है।

यहां एक उत्कृष्ट वेबसाइट है जहां कई फाइलों पर गति के लिए कई संपीड़न उपयोगिताओं को बेंचमार्क किया गया है। उस साइट पर कई अन्य परीक्षण हैं जिन्हें आप अपने लिए सर्वोत्तम उपयोगिता निर्धारित करने के लिए देख सकते हैं।

अधिकांश गति का आपके द्वारा उपयोग किए जाने वाले कार्यक्रम के साथ क्या करना है। मैंने विंडोज के लिए 7zip की उपयोगिता का उपयोग किया है, और मुझे लगता है कि यह बहुत तेज है। हालाँकि, कई फ़ाइलों को संपीड़ित करने में काफी समय लगता है, फिर भी मैं इसे रात भर चलने नहीं देता। या आप बस पूरी बात को टारगेट कर सकते हैं और इसे संपीड़ित नहीं कर सकते ... व्यक्तिगत रूप से मुझे बड़े अभिलेखागार से नफ़रत है इसलिए मुझे सावधान रहना होगा अगर आप ऐसा करना चाहते हैं।


0

मैं उपयोग करना पसंद करता हूं

tar cf - dir-to-be-archived/ | bzip2 -9 - > archive.tar.bz2

फ़ाइलों को अन्य सर्वर पर ले जाने और उन्हें एक ही समय में कवर करने के लिए


1
जो पहले से ही @nik द्वारा शीर्ष उत्तर में सुझाया गया है। जोर देने के लिए डुप्लिकेट करने की आवश्यकता नहीं है, बस दूसरे उत्तर को बढ़ाएं या यदि आप कुछ ठोस हैं तो टिप्पणी जोड़ें, लेकिन एक सम्मिलित उत्तर नहीं देना चाहते हैं। ; ओ)
पीपीएच
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.