लिनक्स: कम डिस्क स्थान के बावजूद फाइलों को संकुचित करना


1

मैं लिनक्स का उपयोग करता हूं। मैंने कुछ समय पहले एक स्क्रीनशॉट कार्यक्रम को कोडित किया था और अब मेरे पास 9 जीआईजी स्क्रीनशॉट, 60000 जेपीईजी हैं, उनमें से अधिकांश बहुत समान दिखते हैं, और मेरे पास 300 एमबी डिस्क स्थान शेष है।

सीमित स्थान को देखते हुए पृष्ठभूमि में उनमें से (या उन सभी को) संपीड़ित करने के लिए शुरू करने के लिए कुछ अच्छे तरीके क्या हैं?

फ़ोल्डर को एक ही बार में कम्प्रेस करने की समस्या यह है कि मेरे पास इसके लिए पर्याप्त डिस्क स्थान नहीं होगा। ऐसा लगता है कि इस प्रक्रिया को विखंडू में तोड़ दिया जाना चाहिए।

तो शायद कुछ इस तरह:

  1. सभी फाइलों की एक सूची प्राप्त करें
  2. संपीड़ित संग्रह में फ़ाइलों का एक हिस्सा (जैसे, 20) जोड़ें।
  3. एक बार जब यह हो जाता है और सफलतापूर्वक सहेज लिया जाता है, तो फ़ाइलों का हिस्सा हटा दें
  4. अगले भाग की प्रक्रिया करें।

जब आप कहते हैं कि 'कंप्रेस' का मतलब है कि आप उन्हें एक सामान्य कम्प्रेशन इंजन (जैसे gzip, bzip2) (अपेक्षाकृत अप्रभावी) के माध्यम से चलाना चाहते हैं या आप JPEG को कम गुणवत्ता के साथ फिर से एनकोड करना चाहते हैं?
माइक फिट्जपैट्रिक

मैंने सिर्फ एक टार्ज्ड हिस्से पर एक LZMA किया और इसने आकार को 4MB से घटाकर 2.3MB कर दिया। व्यक्तिगत छवियां अपने आप को काफी संकुचित कर लेती हैं इसलिए मैं और अधिक हानिपूर्ण संपीड़न / पुनः एन्कोडिंग नहीं चाहता।
ल्यूक स्टेनली

मैंने इसे खुद को पायथन स्क्रिप्ट और 7za: pastebin.com/FZGAmpXB के साथ तैयार किया है। मेरे पास अब लगभग 400MB स्पेस पहले से ही है, यह 300MB पहले था, और यह मंथन करता रहता है। फिलहाल मेरा जवाब पोस्ट करने के लिए मेरा प्रतिनिधि बहुत कम है। नोट: यह काम किया संपीड़न की जाँच नहीं करता है, ('सब कुछ ठीक है')। यदि आप चाहें, तो यह हिस्सा DIY एटीएम है, अक्षम करें।
ल्यूक स्टेनली

यदि "उनमें से अधिकांश बहुत समान दिखते हैं" तो आपको उन सभी को रखने की आवश्यकता क्यों है?
ग्लेन जैकमैन

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

जवाबों:


0

यदि आप जिन फ़ाइलों को संक्षिप्त करना चाहते हैं वे निर्देशिका में हैं <directory>और संग्रह जिसे आप बनाना चाहते हैं <archive>, आप कर सकते हैं:

find <directory> -type f -exec zip -g <archive> {} \; -exec rm {} \;

या 7za के साथ:

find <directory> -type f -exec 7za a <archive> {} \; -exec rm {} \;

यह कार्य को नीचे नहीं तोड़ता (आवश्यक है यदि कम दूरी पर!) या त्रुटि की जाँच करें।
ल्यूक स्टेनली

दरअसल, यह टास्क को तोड़ देता है क्योंकि फाइल को एक-एक करके आर्काइव (1 एग्जीक्यूटिव) में जोड़ा जाता है और जोड़े जाने के बाद और अगली फाइल को जोड़ने से पहले हटा दिया जाता है। त्रुटि की जाँच के लिए, यदि 7za की ज़िप वापस आती है तो 1 निष्पादन सही होगा, 0 का त्रुटि कोड, अन्यथा गलत। यदि झूठी लौटा दी जाती है, तो अगले निष्पादन को निष्पादित नहीं किया जाना चाहिए। जाहिर है, आपको इस पर भरोसा करने से पहले इसका परीक्षण करना चाहिए।
jfg956

हो सकता है कि 'नीचे दिए गए कार्य को तोड़ने' से आपका मतलब कई अभिलेखागार बनाने से हो। हालाँकि, यह JPG को आप और अधिक कठिन बनाना चाहता है क्योंकि आपको कई अभिलेखागार की जाँच करनी होगी या एक सूचकांक बनाना होगा। क्या आपने फ़ाइल को एक-एक करके संपीड़ित करने की कोशिश की है और क्या यह आपको पर्याप्त स्थान बचाता है? शायद एक बेहतर समाधान होगा फाइलसिस्टम कम्प्रेशन ...
jfg956

मुझे लगता है कि यहाँ याद की गई बात यह है कि जैसे फाइलें काफी हद तक समान हैं, कुछ अतिरेक को उनमें से कुछ को एक टार में एक साथ समूहित करके पहचाना जा सकता है और फिर उसे संकुचित किया जा सकता है। दुर्भाग्य से, जैसा कि jpeg खुद को संपीड़ित किया जाता है, एक फाइल में जल्दी से थोड़ा सा अंतर दूसरे के साथ इसे अतुलनीय बना देगा। अन्यथा, कमांड xz -9 * सभी फाइलों को व्यक्तिगत रूप से संपीड़ित करेगा। PNG स्क्रीनशॉट के लिए एक प्रारूप के रूप में बेहतर हो सकता है जिसमें कुछ भी फोटोग्राफिक नहीं होता है।
एंडी ली रॉबिन्सन

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.