मेरे पास इसी तरह की सैकड़ों बड़ी फाइलें (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 फाइलों पर परीक्षण किया।