मेरे पास इसी तरह की सैकड़ों बड़ी फाइलें (30 मेगाबाइट प्रत्येक) हैं जिन्हें मैं कंप्रेस करना चाहता हूं। फ़ाइलों की प्रत्येक जोड़ी में समान डेटा का 99% (कम 1% अंतर) है, इसलिए मुझे 40-50 मेगाबाइट संग्रह से अधिक नहीं होने की उम्मीद है।
एकल फ़ाइल 13-15 एमबी करने के लिए 30 एमबी से संकुचित किया जा सकता है (के साथ xz -1
, gz -1
, bzip2 -1
), लेकिन जब दो या अधिक फ़ाइलों को संपीड़ित मैं आकार के साथ संग्रह करना चाहते हैं 13-15MB + N*0.3MB
जहां एन फ़ाइलों की संख्या है।
उपयोग करते समय tar
(ठोस संग्रह बनाने के लिए) और xz -6
(एक फ़ाइल से बड़ा होने के लिए संपीड़न शब्दकोश को परिभाषित करने के लिए - अपडेट - यह पर्याप्त नहीं था! ), मेरे पास अभी भी आकार के साथ संग्रह है N*13MB
।
मुझे लगता है कि दोनों लगता है gzip
और bzip2
मुझे मदद नहीं करेगा क्योंकि वे एमबी 1 से भी कम समय शब्दकोश है, और मेरी टार धारा पुनरावृत्ति हर 30 एमबी है।
मैं मानक उपकरणों का उपयोग करके आधुनिक लिनक्स में अपनी समस्या को कैसे संग्रहीत कर सकता हूं?
क्या xz
तेजी से संपीड़ित करने के लिए धुन करना संभव है , लेकिन 30-60 एमबी से बड़ा शब्दकोश का उपयोग करें?
अद्यतन : के साथ चाल चली tar c input_directory | xz --lzma2=dict=128M,mode=fast,mf=hc4 --memory=2G > compressed.tar.xz
। आवश्यक mf=hc4
और --memory=2G
विकल्पों के बारे में निश्चित नहीं ; लेकिन dict=128M
शब्दकोश को काफी बड़ा (एक फ़ाइल से बड़ा) होने के लिए सेट करें, और mode=fast
इस प्रक्रिया को थोड़ा तेज करें -e
।
xz -1 --memory=2G
ने मदद नहीं की, सेट से 2 और 4 फाइलों पर परीक्षण किया।