एक अलग निर्देशिका में टार आर्काइव कैसे बनाएं?


38

मैं वर्तमान निर्देशिका के बजाय एक अलग निर्देशिका में एक टार संग्रह बनाना चाहता हूं।

मैंने इस आदेश की कोशिश की:

tar czf file.tar.gz file1 -C /var/www/

लेकिन यह वर्तमान निर्देशिका में संग्रह बनाता है। क्यूं कर?


3
आपको इसका गलत अर्थ लगता है -C(जो कि इसके प्रलेखित अस्पष्ट रूप में अजीब नहीं है)। जानकारी के लिए देख serverfault.com/q/416002/86283
एनएन

जवाबों:


47

आसान तरीका, अगर आपको विशेष रूप से कुछ अन्य निर्देशिका में बदलने के लिए बताने के लिए उपयोग करने की आवश्यकता नहीं है, तो बस कमांड लाइन पर संग्रह के लिए पूर्ण पथ निर्दिष्ट करना है। फिर आप उस निर्देशिका में हो सकते हैं जो आप उस निर्देशिका संरचना को बनाना चाहते हैं जिसे आप संग्रह के अंदर चाहते हैं।-Ctar

निम्नलिखित आर्काइव बनाएगा /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वास्तव में क्या करता है।


1
तुम भी एक रिश्तेदार पथ का उपयोग कर सकते हैं।
एनएन

@ एनएन बिल्कुल, लेकिन जब से हमें पता नहीं है कि क्या $PWDहै, उदाहरण में एक निरपेक्ष पथ का उपयोग करना सबसे सुरक्षित लग रहा था।
बजे एक CVn

दरअसल, मैं सिर्फ इतना है कि यह समझ में आता है कि यह दिखाने के लिए कि यह समस्या को हल करने के लिए उपलब्ध विकल्प है।
एनएन

इस तरह, file1टार संग्रह में पथ होगा /tmp। यह वही हो सकता है या नहीं जिसकी आप अपेक्षा करते हैं।
मौविसील

8

मैं संपीड़ित डेटा को एक स्ट्रीम (-) में बदल देता हूं और आसानी से नाम बदला और ढूँढता हूं (>) जहां भी मैं चुनता हूं (इसके अलावा मैं हमेशा सापेक्ष पथ को टारगेट करता हूं (/!) तो यह आसान है जब इसे अनसुना कर दिया जाए)

tar -cvf - ./dir-to-compress/* > /location-of-new-file/filename.tar

यह व्यक्तिगत फ़ाइलों के साथ मदद नहीं करता है, और -Cबहुत अधिक मुहावरेदार (और कम) है।
महमूद अल-कुद्सी

3

मुझे लगता है, यह होना चाहिए:
tar czf file.tar.gz -C /var/www/ file1

जो मेरे लिए काम करता है। यह निर्देशिका को बदलने और फिर फ़ाइल चुनने के लिए कहता है।


-2

पूरी तरह से काम किया

cd /home; tar -czvf - /var/log/* > varlog.tar.gz
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.