आमतौर पर न तो गज़िप और न ही टार "सबसे छोटा सबसे छोटा टारगेट" बना सकता है। कई संपीड़न उपयोगिताओं हैं जो gz प्रारूप में संपीड़ित कर सकते हैं। मैंने एक बैश स्क्रिप्ट " gz99 " लिखने की कोशिश की है gzip
, 7z
और advdef
सबसे छोटी फ़ाइल प्राप्त करने के लिए। सबसे छोटी संभव फ़ाइल रन बनाने के लिए इसका उपयोग करने के लिए:
tar c path/to/data | gz99 file.gz
advdef
AdvanceCOMP से उपयोगिता आमतौर पर छोटी से छोटी फ़ाइल देता है, लेकिन यह भी गाड़ी (है gz99
उपयोगिता की जाँच करता है कि यह के उत्पादन में स्वीकार करने से पहले फ़ाइल दूषित नहीं किया गया है advdef
)। advdef
सीधे उपयोग करने के लिए , file.tar.gz बनाएँ, हालाँकि आपको ऐसा लगता है। तो भागो:
advdef -z -4 file.tar.gz
यह एक मानक gz फ़ाइल बनाएगा जिसे gzip और टार द्वारा सामान्य रूप से पढ़ा जा सकता है, बस एक छोटा सा छोटा। यह सबसे अच्छा है जो आप gz प्रारूप के साथ कर सकते हैं।
चूँकि आपने केवल हाल ही में सीखा कि टार सेक कर सकते हैं, और यह नहीं कहा कि आप सबसे छोटी ".tar.gz" फ़ाइल क्यों चाहते थे, आप इस बात से अनजान हो सकते हैं कि अधिक कुशल प्रारूप हैं जिनका उपयोग टार फ़ाइलों के साथ किया जा सकता है, जैसे xz। आम तौर पर, एक अलग प्रारूप में स्विच करने से गज़िप विकल्पों के साथ चक्कर लगाने की तुलना में संपीड़न में काफी बेहतर सुधार हो सकता है। Xz का मुख्य नुकसान यह है कि यह gzip जितना आम नहीं है, इसलिए आप जिन लोगों को फाइल भेजते हैं, उन्हें एक नया पैकेज स्थापित करना पड़ सकता है। यह थोड़ा धीमा भी हो जाता है, विशेषकर जब संपीड़ित होता है। यदि यह आपके लिए महत्वपूर्ण नहीं है, और आप वास्तव में सबसे छोटी टार फ़ाइल चाहते हैं, तो कोशिश करें:
tar cv path/to/data | xz -9 > file.tar.xz
टार के आधुनिक संस्करण, उदाहरण के लिए, उबंटू 13.10 पर, स्वचालित रूप से संकुचित फ़ाइलों का पता लगाता है। यहां तक कि अगर आप xz संपीड़न का उपयोग करते हैं तो भी आप हमेशा की तरह विघटित हो सकते हैं:
tar xvf file.tar.xz
एक त्वरित विचार देने के लिए कि ये संपीड़न उपयोगिताओं की तुलना कैसे करें, लिनक्स कर्नेल से पैच-3.1.1 को संपीड़ित करने के प्रभाव पर विचार करें:
utility cpu format size(bytes)
gzip -9 0.02s gz 105,628
advdef -2 0.07s gz 102,619
7z -mx=9 -tgzip 0.42s gz 102,297
advdef -3 0.55s gz 102,290
advdef -4 0.75s gz 101,956
xz -9 0.03s xz 91,064
xz -3e 0.15s xz 90,996
इस तुच्छ उदाहरण में, हम देखते हैं कि सबसे छोटी gz प्राप्त करने के लिए हमें advdef की आवश्यकता है (हालाँकि 7z -tgzip लगभग उतना ही अच्छा है और बहुत कम छोटी गाड़ी है)। हम यह भी देखते हैं कि xz पर स्विच करने से हमें अधिक स्थान प्राप्त होता है, जो कि पुराने gz प्रारूप के सबसे लंबे समय तक बिना किसी संपीड़न के निचोड़ने का प्रयास करता है।