जवाबों:
GZIP=-9 tar cvzf file.tar.gz /path/to/directory
यह मानते हुए कि आप बैश का उपयोग कर रहे हैं। आम तौर पर, GZIP परिवेश चर को "-9" पर सेट करें, और सामान्य रूप से टार चलाएं।
इसके अलावा - यदि आप वास्तव में सर्वश्रेष्ठ संपीड़न चाहते हैं, तो gzip का उपयोग न करें। Lzma या 7z का प्रयोग करें।
और gzip का उपयोग करते समय (जो किसी भी कारण से विभिन्न कारणों से अच्छा विचार है) pigz
कार्यक्रम का उपयोग करने पर विचार करें और नहीं gzip
।
GZIP_OPT
, उपयोग समान होना चाहिए।
टार के लिए gzip फ़्लैग का उपयोग करने के बजाय, टार प्रक्रिया के बाद फ़ाइलों को मैन्युअल रूप से gzip करें, फिर आप gzip प्रोग्राम के लिए संपीड़न स्तर निर्दिष्ट कर सकते हैं:
tar -cvf files.tar /path/to/file0 /path/to/file1 ; gzip -9 files.tar
या आप उपयोग कर सकते हैं:
tar cvf - /path/to/file0 /path/to/file1 | gzip -9 - > files.tar.gz
Gzip कमांड लाइन में -9 अधिकतम संभव संपीड़न स्तर (डिफ़ॉल्ट is -6) का उपयोग करने के लिए gzip को बताता है।
संपादित करें: @depesz टिप्पणी के आधार पर फिक्स्ड पाइप कमांड लाइन।
file.tar
, क्योंकि gzip
".gz" एक्सटेंशन जोड़ता है।
f -
? अगर कोई फ़ाइल नहीं है, तो यह
टार के आधुनिक संस्करण xz संग्रह प्रारूप (GNU टार, 2009 में 1.22 के बाद से , 2010 में 1.17.0 के बाद से बिजीबॉक्स ) का समर्थन करते हैं।
यह lzma2 पर आधारित है , जो कि gz के 7-ज़िप संस्करण की तरह है । यह बेहतर संपीड़न देता है यदि आप xz समर्थन की आवश्यकता के साथ ठीक हैं।
tar -Jcvf file.tar.xz /path/to/directory
मुझे अभी यहां पता चला है (मूल रूप से इस सवाल का एक डुबकी, लेकिन यूनिक्स स्टैकएक्सचेंज में) कि एक्सज़ेड संपीड़न स्तर को नियंत्रित करने के लिए XZ_OPT = -9 पर्यावरण चर भी अन्य पोस्ट में GZIP एक के समान है।
XZ_OPT=-9 tar -Jcvf file.tar.xz /path/to/directory
tar cv /path/to/directory | gzip --best > file.tar.gz
यह मैट्रिक्स मोल का दूसरा उपाय है, लेकिन थोड़ा छोटा:
टार कॉल करते समय, विकल्प f
बताता है कि आउटपुट एक फाइल है। इसे -
(stdout) पर सेट करना टारड को अपना आउटपुट लिखने के लिए बनाता है जो बिना f
और दोनों के डिफ़ॉल्ट व्यवहार है -
।
और जैसा कि gzip
मैन पेज द्वारा कहा गया है , यदि कोई फाइल निर्दिष्ट नहीं है तो gzip मानक इनपुट से संपीड़ित होगा। कॉल -
में कोई जरूरत नहीं है gzip
।
विकल्प --best
(समतुल्य -9
) उच्चतम संपीड़न स्तर सेट करता है।
xz
है और pixz
भी। यह एक मध्यवर्ती .tar फ़ाइल बनाने के बिना समानांतर संपीड़ित करने के लिए उपयोग किए जाने वाले थ्रेड्स की संख्या को नियंत्रित करने का एक शानदार तरीका है। जैसेtar -cv /path/to/dir | pixz -p4 > output.tpxz
-I का उपयोग करके संपीड़न कार्यक्रम को निर्दिष्ट करने का विकल्प भी है। इसमें संपीड़न स्तर विकल्प शामिल हो सकता है।
tar -I 'gzip -9' -cvf file.tar.gz /path/to/directory
-I
, वे पूरी बात को एक प्रोग्राम नाम के रूप में निष्पादित करने का प्रयास करेंगे, और इस प्रकार विफल। डेबियन स्ट्रेच में कम से कम टार 1.29 के रूप में, यह काम करता है।
top
इसे 200% -400 $ CPU के बीच कहीं भी देख और देख सकते हैं।