जवाबों:
आसान तरीका, अगर आपको विशेष रूप से कुछ अन्य निर्देशिका में बदलने के लिए बताने के लिए उपयोग करने की आवश्यकता नहीं है, तो बस कमांड लाइन पर संग्रह के लिए पूर्ण पथ निर्दिष्ट करना है। फिर आप उस निर्देशिका में हो सकते हैं जो आप उस निर्देशिका संरचना को बनाना चाहते हैं जिसे आप संग्रह के अंदर चाहते हैं।-C
tar
निम्नलिखित आर्काइव बनाएगा /var/www/file.tar.gz
और file1
इसमें वर्तमान निर्देशिका (जो कुछ भी होता है) से डाला जाएगा, जिसमें कोई संग्रह जानकारी नहीं होगी।
tar czf /var/www/file.tar.gz file1
पथ (या तो संग्रह, घटक फ़ाइलें, या दोनों) निश्चित रूप से भी सापेक्ष हो सकता है। अगर file1
है /tmp
, तो आप कर रहे हैं /var/spool
और संग्रह में बनाना चाहते हैं /var/www
, तो आप की तरह कुछ इस्तेमाल कर सकते हैं:
tar czf ../www/file1.tar.gz /tmp/file1
विषय पर एक लाख रूपांतर हैं, लेकिन यह आपको आरंभ करना चाहिए। v
ध्वज जोड़ें यदि आप देखना चाहते हैं कि tar
वास्तव में क्या करता है।
$PWD
है, उदाहरण में एक निरपेक्ष पथ का उपयोग करना सबसे सुरक्षित लग रहा था।
file1
टार संग्रह में पथ होगा /tmp
। यह वही हो सकता है या नहीं जिसकी आप अपेक्षा करते हैं।
मैं संपीड़ित डेटा को एक स्ट्रीम (-) में बदल देता हूं और आसानी से नाम बदला और ढूँढता हूं (>) जहां भी मैं चुनता हूं (इसके अलावा मैं हमेशा सापेक्ष पथ को टारगेट करता हूं (/!) तो यह आसान है जब इसे अनसुना कर दिया जाए)
tar -cvf - ./dir-to-compress/* > /location-of-new-file/filename.tar
-C
बहुत अधिक मुहावरेदार (और कम) है।
मुझे लगता है, यह होना चाहिए:
tar czf file.tar.gz -C /var/www/ file1
जो मेरे लिए काम करता है। यह निर्देशिका को बदलने और फिर फ़ाइल चुनने के लिए कहता है।
-C
(जो कि इसके प्रलेखित अस्पष्ट रूप में अजीब नहीं है)। जानकारी के लिए देख serverfault.com/q/416002/86283 ।