आप उस स्थान से दूर एक टार फाइल बनाना चाहते हैं जिस फाइल को आपको टार रेजिड करने की आवश्यकता है?
इसे करने के कई तरीके हैं।
यदि इसे स्थानीय रूप से बनाया जाना है (= एक ही मशीन पर):
tar czvf /path/to/destination/newfile.tar.gz ./SOURCEDIR_OR_FILES
आप उस कमांड के अंत में अतिरिक्त फाइल या निर्देशिका को जोड़ सकते हैं।
यदि इसे दूरस्थ रूप से बनाया जाना है (अर्थात, आप दूरस्थ होस्ट पर टार फ़ाइल बनाना चाहते हैं जिसमें डेटा टार होने वाला है):
tar czvf - ./SOURCEDIR_OR_FILES | ssh user@host 'cat > newfile.tar.gz'
बाद का संस्करण बहुत बहुमुखी है। उदाहरण के लिए आप एक ही तकनीक का उपयोग करके एक डायरेक्टरी + सबडिर्स को "डुप्लिकेट" भी कर सकते हैं:
एक निर्देशिका + उपखंड को किसी अन्य स्थानीय निर्देशिका में डुप्लिकेट करें:
tar cf - ./SOURCEDIR_OR_FILES | ( cd LOCAL_DEST_DIR && tar xvf - )
किसी अन्य दूरस्थ निर्देशिका के लिए एक निर्देशिका + उपखंडों की नकल करें:
tar cvf - ./SOURCEDIR_OR_FILES | ssh user@host 'cd REMOTE_DEST_DIR && tar xf - '
'V' को ड्रॉप करें यदि आपको फ़ाइलों को प्रदर्शित करने की आवश्यकता नहीं है क्योंकि वे टार-एड (या अनरेड) हैं: तो यह बहुत तेज़ी से चलेगा, लेकिन जब तक कोई त्रुटि न हो, तब तक बहुत कुछ नहीं कहेंगे।
मैं स्रोत के लिए "/।" का उपयोग करता हूं ताकि टार को मजबूर करने के लिए इसे एक विश्वसनीय पथ के रूप में संग्रहीत किया जा सके। कुछ मामलों में आप अतिरिक्त पथ जानकारी जोड़ना चाहेंगे:
उदाहरण के लिए, crontab फ़ाइलों को टारगेट करने के लिए, जिसमें आप / etc शामिल हैं, आप कर सकते हैं:
cd / ; tar czf all_crons.tgz ./etc/*cron* ./var/spool/cron
मैं उद्देश्य के सापेक्ष पथ का उपयोग करता हूं: टार के कुछ ओएलडी संस्करण खतरनाक हो सकते हैं और अपने मूल वैश्विक पथ के साथ फाइलें निकाल सकते हैं, जिसका अर्थ है कि आप कर सकते हैं: cd /safedir ; tar xvf sometar
और उनके मूल पथ पर वैश्विक नामों को अधिलेखित करने वाली फाइलें हैं, जो कि OUTSIDE / safedir है। और इसके नीचे नहीं! बहुत खतरनाक है, और अभी भी संभव है क्योंकि वहाँ पुराने उत्पादन सर्वर हैं। बेहतर होगा कि आप हर समय सापेक्ष रास्तों का उपयोग करें, भले ही आप अधिक हाल के टार का उपयोग करें।
cd /opt; tar zcf $HOME/junk.tar.gz junk
।