जवाबों:
के लिए -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
डैश के बिना भी आखिरी डाल दें ।
tar
macOS को समर्थन लगता है, -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
, या यदि आप tar
MacOS पर उपयोग कर रहे हैं , तो आप शायद 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 -cJf
MacOS पर वाक्य रचना का उपयोग न करने का कोई विशेष कारण ? बस जिज्ञासु, क्योंकि मैं अभी कर रहा था और यह काम कर रहा था।
इसे इस्तेमाल करे: 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
) से पता चलता है फ़ाइलें संग्रह में जोड़ा जा रहा वर्बोज़ किया जाना है।