7 ज़िप का उपयोग करके फ़ाइलों को संपीड़ित करते समय उपयोग करने के लिए सबसे अच्छा विकल्प क्या हैं?


61

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

पाठ फ़ाइल को ज़िप प्रारूप में संपीड़ित करते समय उपयोग करने के लिए सबसे अच्छी सेटिंग क्या है जब मेरी एकमात्र आवश्यकता एक छोटे फ़ाइल आकार है?

7zip विकल्प

मैंने स्पष्ट और चुने हुए अल्ट्रा कम्प्रेशन का काम किया है, और मैंने देखा है कि LZMA अपस्फीति की तुलना में बेहतर काम करता है, लेकिन मेरे लिए उन सभी का परीक्षण करने के लिए विकल्पों के कई अन्य क्रमपरिवर्तन भी हैं।


1
क्या ज़िप को कई फाइलों में विभाजित करना एक विकल्प है?
JaredMcAteer

3
जैसे ही आप कुछ भी लेते हैं लेकिन Deflateप्रारूप, यह "सामान्य" .zip फ़ाइल नहीं है, लेकिन एक "विस्तारित" ज़िप फ़ाइल है, जो WinZip द्वारा अग्रणी है। उन्होंने मूल रूप से एक्सटेंशन को .zip के रूप में रखा, बहुत अड़चन के लिए (क्योंकि अधिकांश सामान्य ज़िप-हैंडलिंग टूल उनके साथ सौदा नहीं कर सकते), लेकिन अधिकांश आर्काइव पारंपरिक .zip फ़ाइलों से उन्हें अलग करने के लिए अब .zipx का उपयोग करते हैं। यदि आप LZMA का उपयोग कर सकते हैं, तो .7z पर स्विच करें और PPMd चुनें - यह पाठ फ़ाइलों के लिए बेहतर (और तेज़) संपीड़ित करना चाहिए।
afrazier

1
@afrazier: ".ZIP फ़ाइल प्रारूप विनिर्देश निम्नलिखित संपीड़न विधियों को संग्रहीत करता है: संग्रहीत (कोई संपीड़न नहीं), सिकुड़ा हुआ, कम किया हुआ (विधियाँ 1-4), इम्प्लोडेड, टोकनलाइज़िंग, डीफ़्लैट, डिफ्लेट64, bipip2, LZMA (EFS), WavPack, PPMd । " en.wikipedia.org/wiki/Zip_%28file_format%29#Compression_methods
endolith

1
@endolith: bzip2, lzma, wv, और ppmd ये सभी फ़ाइल स्वरूप के बहुत हालिया जोड़ हैं। यह मान लेना भी सुरक्षित नहीं है कि आपका प्राप्तकर्ता deflate64 को संभाल सकता है, बहुत कम कुछ भी नया।
एप्रेज़ियर

1
"सामान्य ज़िप उपकरण" को परिभाषित करें। अधिकांश "सामान्य ज़िप उपकरण" आजकल 7z और winrar की तरह 7z फाइलें निकाल सकते हैं।
फुकुव

जवाबों:


61

सबसे छोटी मानक ज़िप फ़ाइल बनाने के लिए जिसे 7-ज़िप बना सकते हैं, आज़माएँ:

7z a -mm=Deflate -mfb=258 -mpass=15 -r foo.zip C:\Path\To\Files\*

स्रोत: मैं सर्वश्रेष्ठ, मानक ज़िप संपीड़न कैसे प्राप्त कर सकता हूं?

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

7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on archive.7z dir1

कौन से:

-t7z   7z archive

-m0=lzma
       lzma method

-mx=9  level of compression = 9 (Ultra)

-mfb=64
       number of fast bytes for LZMA = 64
-md=32m
       dictionary size = 32 megabytes

-ms=on solid archive = on

2
@Tek: क्यों? यह अच्छा नहीं है। सवाल "मानक ज़िप प्रारूप" का उपयोग करने के बारे में था, इसलिए उत्तर को LZMA को निर्दिष्ट नहीं करना चाहिए। -ms = on .7z के लिए है, न कि मानक ज़िप फाइलें। -md BZip2 से संबंधित है, इसलिए मुझे उम्मीद नहीं है कि इससे जिप (या LZMA) भी प्रभावित होगा। -mfb = 64 एक अयोग्य मान है: -mfb = 258 छोटी ज़िप फ़ाइल बनाता है। और इस जवाब में भी उल्लेख नहीं -mpass = 15 जो ज़िप फ़ाइलों को प्रभावित कर सकता है। यह एक अच्छा स्वरूपित उत्तर है, जो दुर्भाग्य से, कई मायनों में गलत है।
TOOGAM


यदि आप 7-ज़िप FAQ को देखते हैं, तो यह बताता है कि 7z के नए संस्करणों में कुछ परिस्थितियों में पुराने संस्करणों की तुलना में खराब प्रदर्शन हो सकता है। अधिक विवरण के लिए अक्सर पूछे जाने वाले प्रश्न पढ़ें, लेकिन जीयूआई में पैरामीटर फ़ील्ड में 'क्यू' का उपयोग करें या कमांड लाइन संस्करण में फ़ाइल एक्सटेंशन विधि द्वारा पुराने सॉर्ट का उपयोग करने के लिए -mqs का उपयोग करें। 7-zip.org/faq.html
दोपहर

13

यदि आप केवल .zip के बजाय .7z प्रारूप का उपयोग कर सकते हैं, तो मैं बस निम्नलिखित विकल्पों के साथ PPMD का उपयोग करूंगा और बाकी सब कुछ संपीड़न स्तर द्वारा निर्धारित के रूप में छोड़ दूंगा :

  • पुरालेख प्रारूप: 7z
  • संपीड़न विधि: पीपीएमडी
  • संपीड़न स्तर: अल्ट्रा

मैं इन विकल्पों का उपयोग करके नियमित रूप से सर्वर / टेक्स्ट लॉग (60MB +) को संपीड़ित करता हूं और वे आमतौर पर मूल आकार के 1-2% पर निकलते हैं ।


लॉग फ़ाइलों के रूप में पाठ के लिए, ppmd निश्चित रूप से जाने का रास्ता है। हालांकि, इस सवाल का उल्लेख है कि इसे ज़िप प्रारूप में रहने की आवश्यकता है, जो पीपीएमडी के साथ काम नहीं कर सकता है।
ब्रायन मिंटन

पीपीएमडी के साथ जिप की कोशिश की और विंडोज एक्सप्लोरर विंडोज 7 पर यहां शिकायत के बिना सामग्री को खोलता है
Umber Ferrule

3
मैंने उस पर भी गौर किया। यह ठीक ऊपर सामग्री को खोलता है। हालाँकि, जब मैंने वास्तव में ज़िप फ़ाइल के अंदर की किसी एक फाइल को देखने की कोशिश की, तो वह विफल रही।
ब्रायन मिंटन

2
पीपीएमपी पाठ फ़ाइलों के लिए बेहतर संपीड़न विधि क्यों है?
user598527 19

1
LZMA2 PPMD ​​की तुलना में पाठ फ़ाइलों के लिए बेहतर परिणाम देता है।
T3rm1

7

मैं Ubuntu सर्वर 14.04.03 में p7zip [64] 9.20 के साथ VM पर db.fdb 1,2 GB (1236598784 B) की तुलना करता हूं:

1. 7z a -mx=9 1.7z db.fdb
2. 7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on 2.7z db.fdb
3. 7z a -t7z -m0=lzma -mx=9 -mfb=258 -md=32m -ms=on 3.7z db.fdb
4. 7z a -t7z -m0=lzma -mx=9 -mfb=258 -md=32m -ms=on -pass=15 4.7z db.fdb
5. 7z a -mx=9 -mmt=on 5.7z db.fdb
6. 7z a -t7z -m0=lzma -mx=9 -mfb=258 -md=32m -ms=on -mmt=on 6.7z db.fdb

और उसके परिणाम हैं:

1.7z 96 MB (100108731 B) with 6' 25"
2.7z 95 MB ( 99520375 B) with 5' 18"
3.7z 93 MB ( 97512311 B) with 9' 19"
4.7z 93 MB ( 97512345 B) with 9' 40"
5.7z 96 MB (100108731 B) with 5' 26"
6.7z 93 MB ( 97512311 B) with 9' 09"

मुझे लगता है कि दूसरी विधि ठीक काम करती है = (लगभग) सबसे अच्छा समय के साथ सबसे अच्छा सेक। लेकिन सबसे अच्छी "दृश्य" और याद रखने में आसान पहली विधि है - छोटी फ़ाइलों के साथ और अधिकतम संपीड़ित का कोई बिंदु नहीं। 2 और 3 विधि के बीच हमें अतिरिक्त छोटे 7z नहीं मिलते हैं, लेकिन संपीड़न के लिए लगभग दो गुना अधिक समय देना पड़ता है। कोई भी अपना खुद का फैसला करता है।


7

बहुत प्रयोग के बाद, विस्तृत 7zip प्रलेखन में खुदाई, और उन्नत LZMA2 मापदंडों के बारे में 7z स्रोत कोड में से कुछ को पढ़ना, यहां नीचे एक बेहतर तरीका है। इसने यहां पोस्ट किए गए पहले से स्वीकृत समाधानों की तुलना में या यहां तक ​​कि 7z मेन्यू में भी कुछ 1GB वास्तविक-विश्व परीक्षण फ़ाइलों को 2 से 4 गुना बेहतर बना दिया।

7z a -t7z -mx=9 -mfb=273 -ms -md=31 -myx=9 -mtm=- -mmt -mmtf -md=1536m -mmf=bt3 -mmc=10000 -mpb=0 -mlc=0 archive.7z inputfileordir

LZMA2 संपीड़न को यहां मान लिया गया है, लेकिन आप उन्नत LZMA2 विकल्पों जैसे -m0=LZMA2:27, या -m0=LZMA2:d25, या मापदंडों के एक सरणी को पास करने के साथ 7zip में और भी बेहतर प्रदर्शन प्राप्त करने में सक्षम हो सकते हैं।

-m0=BCJ2 -m1=LZMA:d25 -m2=LZMA:d19 -m3=LZMA:d19 -mb0:1

इस तरह के मापदंडों को मेरे द्वारा परीक्षण किए गए 7z संस्करणों द्वारा सम्मानित नहीं किया गया था, लेकिन आप उन्हें ठीक से पार्स करने के लिए 7z कोड को आगे तलाशने या पैच करना चाह सकते हैं। या शायद यह काम करने वाला है और परीक्षण किए गए बिल्डरों में बस टूट गया है।


वाह, यह वास्तव में एक बड़ा अंतर था। अपने संग्रह के लिए, मैंने कई अन्य सुझावों के साथ प्रयोग किया, जिनमें अन्य उत्तर भी शामिल हैं, और मुझे जो सबसे अच्छा परिणाम मिला, वह इन सेटिंग्स का उपयोग करके 99MB, 85MB था।
user9399

0

सर्वर के अधिकतम अनुमत फ़ाइल आकार में "विभाजन, बाइट्स" फ़ील्ड को सेट करें (बाइट्स में, मुझे लगता है, हालांकि ऐसा लगता है कि यह "केबी" और "एमबी" जैसे आम संक्षिप्त रूप को स्वीकार करता है)। ज़िप फ़ाइल है कि आकार से अधिक है, 7-ज़िप जैसे एकाधिक फ़ाइलों को स्वचालित, में विभाजित कर देगा integration_serviceLog.zip.001 , integration_serviceLog.zip.002 , आदि (वे बैक, पी पिन यह प्रयोग किया जाता है जब कई भर में ज़िप फ़ाइलों को पार करने वाली फ्लॉपी डिस्क।) आपको उन्हें अनज़िप करने के लिए सभी फ़ाइलों की आवश्यकता होगी। फ़ाइलों के किसी भी विशेष सेट के लिए उपयोग करने के लिए पूर्ण सर्वोत्तम संपीड़न सेटिंग्स के बारे में चिंता करने के बजाय इसका उपयोग करें, क्योंकि एक फ़ाइल के लिए सबसे अच्छा क्या किसी अन्य फ़ाइल के लिए अलग हो सकता है, और आप हर बार जब आप इस के माध्यम से जाने की जरूरत नहीं है लॉग लॉग करें।


1
मैं इस बात को लेकर चिंतित हूं कि दूसरी तरफ के लोग फाइलों को कैसे खोलेंगे। मुझे यह उनके लिए जितना संभव हो उतना सरल होना चाहिए। क्या आप जानते हैं कि क्या आप अंतर्निहित विंडोज़ ज़िप, या गज़िप का उपयोग करके विभाजित संस्करणों को खोल सकते हैं?
jjnguy

जाहिरा तौर पर, नहीं, बिल्ट-इन विंडोज जिप-फोल्डर फीचर, जिप फाइल को सपॉर्ट नहीं करता है। यह बहुत बुरा है, क्योंकि यह विंडोज 3 से पहले प्रारूप का एक मानक फीचर रहा है। मुझे बहुत आश्चर्य होगा अगर गज़िप ऐसा नहीं कर सकता है, हालांकि। WinZip निश्चित रूप से कर सकते हैं।
रोब केनेडी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.