7-ज़िप में "कंप्रेशन के बिना फाइल कैसे स्टोर करें"?


25

7-ज़िप में कुछ फ़ाइल प्रकारों को संपीड़न से चुनिंदा तरीके से रोकने का कोई तरीका है , जैसे कि WinRAR में?

मैं एक विशाल फ़ोल्डर (कई गीगाबाइट) को संपीड़ित करने की कोशिश कर रहा हूं, और मैं नहीं चाहता कि पहले से संपीड़ित फाइलें (जैसे ज़िप फाइलें) फिर से संपीड़ित हों - उन्हें बिना संपीड़न के संग्रहीत किया जाना चाहिए।


क्या कोई विशेष कारण है (हर संभव थोड़ा सा संसाधन समय बचाना, बिना उन्हें पढ़े 7z बाइनरी को बंडल करना या LZMA, आदि को फिर से लागू करना) जो आप ऐसा करना चाहते हैं? आम तौर पर बोलते हुए, सबसे अधिक संपीड़न उपकरण जो मैंने चलाए हैं, वे स्वचालित रूप से चीजों को स्वचालित रूप से संग्रहीत करने के लिए पर्याप्त हो जाते हैं, अगर उन्हें लगता है कि फ़ाइल को आगे संपीड़ित करने के प्रयास में खराब प्रतिक्रिया होती है।
ssokolow

@ssokolow: यह 4 साल हो गया है और मुझे लगता है कि मैंने कभी आपके सवाल का जवाब नहीं दिया, लेकिन अन्य कारण भी हो सकते हैं जैसे कि भ्रष्टाचार से नुकसान को कम करना और किसी आपदा में डेटा को पुनर्प्राप्त करना आसान बनाना।
मेहरदाद

जुड़ा हुआ प्रश्न: unix.stackexchange.com/questions/241898/…
bohdan_trotsenko

जवाबों:


19

हां, एक ही 7-ज़िप संग्रह के भीतर अलग-अलग फ़ाइलों के लिए अलग-अलग संपीड़न विधियों का होना संभव है।

-mविधि निर्दिष्ट करने के लिए पैरामीटर के साथ 7-ज़िप के कमांड लाइन संस्करण का उपयोग करें Copy, जिसका अर्थ है कोई संपीड़न नहीं।

उदाहरण :

7za a -m0=Copy tmp7.7z *.txt

अधिक जानकारी के लिए, देखें -m (सेट संपीड़न विधि) स्विच


उपरोक्त आदेश txt फ़ाइलों को संपीड़ित नहीं करेगा और केवल txt फ़ाइलों को मौजूदा संग्रह में जोड़ देगा। उपरोक्त कमांड चलाने से पहले, गैर-पाठ फ़ाइलों के साथ एक संग्रह फ़ाइल बनाई जानी चाहिए। इतना आसान नहीं है अगर वहाँ विभिन्न प्रकार की फाइलें हैं।
प्रवीण श्रीपति

यदि -m0=Copyकाम नहीं करता है, तो प्रयास करें -mx=0
बोरा एम। एल्पर

15

मान लें कि आपके पास ज़िप फ़ाइलें हैं और आपके फ़ोल्डर में असम्पीडित txt फ़ाइलें हैं।

पहला कदम निम्नलिखित आदेश का उपयोग करके txt फ़ाइलों को संपीड़ित करने के लिए एक संग्रह बनाना है।

आप संपीड़न के स्तरों को निर्धारित करने के लिए -m का उपयोग कर सकते हैं, यह उस संपीड़न विधि पर भी निर्भर करता है जिसका आप उपयोग कर रहे हैं

मान लें कि यह केवल डिफ़ॉल्ट संपीड़न है

7z a compressed.7z *.txt -r 

अब आप संकुचित हो जाएँगे ।z

दूसरे चरण के इस संग्रह करने के लिए पहले से ही संकुचित फ़ाइल की प्रतिलिपि या एक नया संग्रह बनाने के लिए किया जाएगा

7z u compressed.7z -u!update.7z -mx0 *.zip 

यहां अपडेट कमांड का विस्तार किया गया है

और यदि आप ग्राफिकल इंटरफ़ेस का उपयोग करने की स्वतंत्रता रखते हैं, तो अद्यतन निम्नलिखित तरीके से किया जा सकता है

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


एक परेशानी की तरह लेकिन मुझे लगता है कि काम करेगा, धन्यवाद।
मेहरदाद

1

मैंने एक PowerShell स्क्रिप्ट बनाई, जो जल्दी से पहले से संपीड़ित (जैसे .zip फ़ाइलों) को पुन: संपीड़ित करने की कोशिश किए बिना फ़िल्टर्स को संग्रहीत करके एक निर्देशिका को संक्षिप्त कर देगी। यह 7zip कमांड लाइन इंटरफेस का उपयोग करता है और फ़ाइलनाम एक्सटेंशन का उपयोग करके यह तय करने के लिए करता है कि किसी भी फ़ाइल को संपीड़ित या बस स्टोर करना है या नहीं।

आप यहाँ स्क्रिप्ट पा सकते हैं: https://gist.github.com/ivanatpr/5dea086172eab573ba71


0

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

सबसे अच्छा कंप्रेशर्स संपीड़न की जांच करते हैं और बस कंप्रेस करने वाली फ़ाइलों को स्टोर करते हैं क्योंकि कंप्रेसिंग तब ओवरहेड जोड़ देगा और आकार बढ़ा देगा।

बेशक, पहली जगह में फ़ाइल को देखने का काम और समय है।

जैसा कि अन्य उत्तरों में चर्चा की गई है, आपकी फाइलसेट पर कई पास का प्रदर्शन करना संभवतः सबसे अच्छा समाधान है और आसानी से स्क्रिप्ट करने योग्य है।

7z आर्काइव बनाएँ और सब कुछ एक ही पास में संपीड़ित फ़ाइलों को जोड़ दें, फिर पूर्व-संकुचित फ़ाइलों को गैर-संपीड़ित डेटा के रूप में जोड़ें। (मैं इसे इस तरह से करूंगा क्योंकि कंप्रेसेबल सामान तब आर्काइव की शुरुआत में होगा और नॉन-कम्प्रिसेबल सभी अंत में होगा। यह ड्राइव से स्ट्रीम होगा क्योंकि यह सन्निहित है)

('सेक ...' बहुत ज्यादा इस्तेमाल किया!)


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