यह अजीब है कि किसी और ने यह उल्लेख नहीं किया है कि GNU के आधुनिक संस्करण tarआपको बंडल करते समय संपीड़ित करने की अनुमति देते हैं:
tar -czf output.tar.gz directory1 ...
tar -cjf output.tar.bz2 directory2 ...
आप अपने चयन के कंप्रेसर का उपयोग भी कर सकते हैं, बशर्ते कि यह ' -c' (स्टडआउट या स्टड से) और ' -d' (डीकंप्रेस) विकल्पों का समर्थन करता है:
tar -cf output.tar.xxx --use-compress-program=xxx directory1 ...
यह आपको किसी भी वैकल्पिक कंप्रेसर को निर्दिष्ट करने की अनुमति देगा।
[ जोड़ा गया : यदि आप फ़ाइलों gzipया bzip2संपीड़ित फ़ाइलों से निकाल रहे हैं , तो GNU tarइनका पता लगाता है और उपयुक्त प्रोग्राम चलाता है। अर्थात्, आप उपयोग कर सकते हैं:
tar -xf output.tar.gz
tar -xf output.tgz # A synonym for the .tar.gz extension
tar -xf output.tar.bz2
और इन्हें ठीक से संभाला जाएगा। यदि आप एक गैर-मानक कंप्रेसर का उपयोग करते हैं, तो आपको यह निर्दिष्ट करने की आवश्यकता है कि जब आप निष्कर्षण करते हैं।]
पृथक्करण का कारण, चयनित उत्तर के रूप में, कर्तव्यों का पृथक्करण है। अन्य बातों के अलावा, इसका मतलब है कि लोग cpioफाइलों की पैकेजिंग के लिए ' ' कार्यक्रम का उपयोग कर सकते हैं (इसके बजाय tar) और फिर पसंद के कंप्रेसर का उपयोग करें (एक समय में, पसंदीदा कंप्रेसर था pack, बाद में यह हुआ था compress(जो इससे कहीं अधिक प्रभावी था) pack), और फिर gzipजो अपने पूर्ववर्तियों के चारों ओर बजता है, और पूरी तरह से प्रतिस्पर्धी है zip(जो यूनिक्स में चित्रित किया गया है, लेकिन वहां मूल नहीं है), और अब bzip2जो, मेरे अनुभव में, आमतौर पर 10-20% का लाभ होता है gzip।
[ जोड़ा गया : किसी ने अपने उत्तर में उल्लेख किया है कि cpioअजीब सम्मेलनों है। यह सच है, लेकिन जब तक जीएनयू tarको प्रासंगिक विकल्प (' -T -') नहीं मिला, cpioतब तक बेहतर आदेश था जब आप किसी दिए गए निर्देशिका के तहत सब कुछ संग्रह नहीं करना चाहते थे - आप वास्तव में चुन सकते थे कि कौन सी फाइलें संग्रहीत की गई थीं। का नकारात्मक पहलू cpioआप न केवल कि था सकता है फ़ाइलें चुनें - आप था उन्हें चुनने के लिए। वहाँ अभी भी एक जगह है जहाँ cpioस्कोर; यह एक इन-सीटू कॉपी को एक निर्देशिका पदानुक्रम से दूसरे में किसी भी मध्यवर्ती भंडारण के बिना कर सकता है:
cd /old/location; find . -depth -print | cpio -pvdumB /new/place
संयोग से, इस संदर्भ में ' -depth' विकल्प findमहत्वपूर्ण है - यह निर्देशिकाओं की अनुमतियों को स्वयं निर्धारित करने से पहले निर्देशिकाओं की सामग्री की प्रतिलिपि बनाता है। जब मैंने इस उत्तर के अलावा प्रवेश करने से पहले कमांड की जाँच की, तो मैंने कुछ रीड-ओनली डायरेक्ट्रीज़ (555 अनुमति) की प्रतिलिपि बनाई; जब मैं कॉपी को हटाने गया, तो मुझे ' rm -fr /new/place' समाप्त होने से पहले निर्देशिकाओं की अनुमतियों को शिथिल करना पड़ा । -depthविकल्प के बिना , cpioकमांड विफल हो जाती। मुझे केवल यह याद है जब मैं सफाई करने के लिए गया था - सूत्र ने कहा कि मेरे लिए स्वचालित है (मुख्य रूप से कई वर्षों में कई पुनरावृत्तियों के आधार पर)। ]