जवाबों:
के लिए -Jसंपीड़न विकल्प का उपयोग करें xz। और याद रखना man tar:)
tar cfJ <archive.tar.xz> <files>
2015-08-10 को संपादित करें:
यदि आप tar डैश के साथ तर्क पारित कर रहे हैं (उदा: tar -cfविरोध के रूप में tar cf), तो -fविकल्प अंतिम होना चाहिए , क्योंकि यह फ़ाइल नाम निर्दिष्ट करता है ( जो बाहर इंगित करने के लिए @ABB के लिए धन्यवाद !)। उस स्थिति में, कमांड ऐसा दिखता है:
tar -cJf <archive.tar.xz> <files>
fडैश के बिना भी आखिरी डाल दें ।
tarmacOS को समर्थन लगता है, -Jलेकिन फीचर मैन पेज में नहीं दिया गया है। इसे यहां देखना था। हालांकि वे XZ का उल्लेख अनुभाग में करते हैं --options...
स्विच -Jकेवल नए सिस्टम पर काम करता है। सार्वभौमिक आदेश है:
.Tar.xz आर्काइव बनाने के लिए
tar cf - directory/ | xz -z - > directory.tar.xz
व्याख्या
tar cf - directoryनिर्देशिका को पढ़ता है / और उसे TAR प्रारूप में रखना शुरू करता है। इस ऑपरेशन का आउटपुट मानक आउटपुट पर उत्पन्न होता है।
| एक और कार्यक्रम के इनपुट के लिए मानक उत्पादन पाइप ...
... जो होता है xz -z -। XZ को संपीड़ित किया जाता है ( -z) मानक इनपुट से संग्रह ( -)।
आप से उत्पादन अनुप्रेषित xzकरने के लिए tar.xzफ़ाइल।
-fपास होने पर "फ़ाइल से" मतलब नहीं है xz। इसके बजाय यह --force( विवरण के लिए xz (1) देखें) के लिए कम है, और जब तक आवश्यक न हो, इसका सर्वोत्तम उपयोग नहीं किया जाता है।
tar cf - directory/ | xz -z -T0 - > directory.tar.xz
-1 -T0या -0 -T0विकल्प के रूप में कितना आकार है , जो आमतौर पर आपको तुलनीय या तेज़ समय में gzip की तुलना में एक छोटी फ़ाइल देता है, जबकि डिफ़ॉल्ट -6काफी धीमा होता है गज़िप की तुलना में।
यदि आपको पाइप मोड पसंद है, तो यह सबसे साफ समाधान है:
tar c some-dir | xz > some-dir.tar.xz
fफ़ाइलों से निपटने के लिए विकल्प को रखना आवश्यक नहीं है और फिर -यह निर्दिष्ट करने के लिए कि फ़ाइल मानक इनपुट है। इसके लिए -zविकल्प निर्दिष्ट करना भी आवश्यक नहीं है xz, क्योंकि यह डिफ़ॉल्ट है।
यह साथ काम करता है gzipऔर bzip2भी:
tar c some-dir | gzip > some-dir.tar.gz
या
tar c some-dir | bzip2 > some-dir.tar.bz2
Decompressing भी बहुत सीधा है:
xzcat tarball.tar.xz | tar x
bzcat tarball.tar.bz2 | tar x
zcat tarball.tar.gz | tar x
यदि आपके पास केवल tarसंग्रह है, तो आप इसका उपयोग कर सकते हैं cat:
cat archive.tar | tar x
यदि आपको केवल फाइलों को सूचीबद्ध करने की आवश्यकता है, तो उपयोग करें tar t।
यदि आप के लिए संपीड़न विकल्प का उपयोग करना चाहते हैं xz, या यदि आप tarMacOS पर उपयोग कर रहे हैं , तो आप शायद tar -cJfसिंटैक्स से बचना चाहते हैं ।
इसके अनुसार man xz, ऐसा करने का तरीका है:
tar cf - baz | xz -4e > baz.tar.xz
क्योंकि मुझे वोज्शिएक एडम कोस्ज़ेक का प्रारूप पसंद था , लेकिन जानकारी नहीं:
c निर्दिष्ट फ़ाइलों के लिए एक नया संग्रह बनाता है। fएक निर्देशिका से पढ़ता है (सबसे अच्छा इस दूसरी डाल क्योंकि -cf! = -fc)- स्टैंडर्ड आउटपुट के लिए आउटपुट| अगले कमांड के लिए पाइप आउटपुटxz -4eसंपीड़न विकल्प के xzसाथ कॉल करता है -4e। (बराबर -4 --extreme)> baz.tar.xz तारांकित और संपीड़ित फ़ाइल को निर्देश देता है baz.tar.xz जहां -4eहै, अपने स्वयं के संपीड़न विकल्पों का उपयोग करें। मैं अक्सर उपयोग -kकरने के लिए --keepमूल फ़ाइल और -9वास्तव में भारी संपीड़न के लिए। -zमैन्युअल रूप xzसे ज़िप पर सेट करने के लिए, हालांकि यह ज़िप करने के लिए चूक है अगर अन्यथा निर्देशित नहीं किया गया है।
राफेल वैन हॉर्न को गूंजने के लिए , अनकम्प्रेस्ड और अनटार करने के लिए (नीचे नोट देखें):
xz -dc baz.tar.xz | tar x
नोट: राफेल के जवाब के विपरीत , xz -dcइसके बजाय का उपयोग करें catxz। डॉक्स इसे उसी स्थिति में सुझाता है जब आप इसका उपयोग स्क्रिप्टिंग के लिए कर रहे हैं। सबसे अच्छा उपयोग करने की आदत है -dया --decompressइसके बजाय के unxzरूप में अच्छी तरह से। हालाँकि, यदि आप, कमांड लाइन से उन कमांड का उपयोग करना ठीक है।
tar -cJfMacOS पर वाक्य रचना का उपयोग न करने का कोई विशेष कारण ? बस जिज्ञासु, क्योंकि मैं अभी कर रहा था और यह काम कर रहा था।
इसे इस्तेमाल करे: tar -cf file.tar file-to-compress ; xz -z file.tar
ध्यान दें:
| क्योंकि यह एक साथ कमांड चलाता है। एक के बाद एक कमांड का उपयोग करना ;या &निष्पादित करना ।Jविकल्प नहीं दिखता है , लेकिन यह काम करता है। मुझे लगता है कि आपको RHEL6 की आवश्यकता है।
tar -c file-to-compress | xz -z > file.tar.xz।
&करने के बाद एक के बाद एक कमांड लॉन्च नहीं होगा। इसके बजाय, यह पृष्ठभूमि प्रक्रिया के रूप में पहला लॉन्च करेगा।
vआदेश स्विच करने के लिए (tar -cJvf) से पता चलता है फ़ाइलें संग्रह में जोड़ा जा रहा वर्बोज़ किया जाना है।