मैं एक बैकअप खोल स्क्रिप्ट के हिस्से में निम्न आदेश:राल एक निर्देशिका है, लेकिन संग्रह में पूर्ण पूर्ण पथ को संग्रहीत नहीं करते
tar -cjf site1.bz2 /var/www/site1/
जब मैं संग्रह की सामग्री को सूचीबद्ध करते हैं, मैं :
tar -tf site1.bz2
var/www/site1/style.css
var/www/site1/index.html
var/www/site1/page2.html
var/www/site1/page3.html
var/www/site1/images/img1.png
var/www/site1/images/img2.png
var/www/site1/subdir/index.html
लेकिन मैं संग्रह के भीतर निर्देशिका और फ़ाइल नाम में से हिस्सा /var/www/site1
दूर करने के लिए, क्रम में निकासी आसान बनाने और बेकार निरंतर निर्देशिका संरचना से बचने के लिए चाहते हैं। कभी नहीं पता, अगर मैं ऐसी जगह पर बैकअप वेबसाइटों को निकाल दूंगा जहां वेब डेटा /var/www
के तहत संग्रहीत नहीं किया गया था।
ऊपर के उदाहरण के लिए, मैं करना चाहते हैं:
tar -tf site1.bz2
style.css
index.html
page2.html
page3.html
images/img1.png
images/img2.png
subdir/index.html
तो, कि जब मैं निकालने, फ़ाइलें मौजूदा निर्देशिका में निकाला जाता है और कर रहे हैं मैं निकाले फ़ाइलें बाद में स्थानांतरित करने के लिए की जरूरत नहीं है, और इसलिए कि उप-निर्देशिका संरचना संरक्षित है।
stackoverflow
में और वेब पर अन्य स्थानों पर टैर और बैकअप के बारे में पहले से ही कई प्रश्न हैं, लेकिन उनमें से अधिकतर संपूर्ण उप-निर्देशिका संरचना (फ़्लैटनिंग) छोड़ने के लिए पूछते हैं, या केवल आरंभिक/में जोड़ें नाम (मुझे नहीं पता कि निकालने के दौरान यह वास्तव में क्या बदलता है), लेकिन अब और नहीं।
समाधान यहाँ और वहाँ के साथ-साथ मैनुअल पाए जाने वाले कुछ पढ़ा होने के बाद, मैंने कोशिश की:
tar -cjf site1.bz2 -C . /var/www/site1/
tar -cjf site1.bz2 -C//var/www/site1/
tar -cjf site1.bz2 -C /var/www/site1/ /var/www/site1/
tar -cjf site1.bz2 --strip-components=3 /var/www/site1/
लेकिन उनमें से कोई भी तरह से मैं चाहता हूँ काम किया। कुछ कुछ नहीं करते हैं, कुछ अन्य अब उप-निर्देशिकाओं को संग्रहित नहीं करते हैं।
यह एक क्रोन द्वारा लॉन्च बैकअप खोल स्क्रिप्ट के अंदर है, इसलिए मुझे अच्छी तरह से पता नहीं है, कौन सा उपयोगकर्ता इसे चलाता है, पथ और वर्तमान निर्देशिका क्या है, इसलिए हमेशा सब कुछ के लिए पूर्ण पथ लिखना आवश्यक है, और पसंद करेंगे स्क्रिप्ट में कुछ और तोड़ने से बचने के लिए वर्तमान निर्देशिका को नहीं बदलना (क्योंकि यह न केवल बैकअप वेबसाइटें, बल्कि डेटाबेस भी करता है, फिर एफ़टीपी आदि को भेजता है)
इसे कैसे प्राप्त करें?
क्या मुझे बस गलत समझा गया है कि विकल्प-सी कैसे काम करता है?
संभावित डुप्लिकेट [निर्देशिका संरचना के बिना विभिन्न निर्देशिकाओं से फ़ाइलों को संग्रहित करने के लिए टैर का उपयोग कैसे करें] (http://stackoverflow.com/questions/18675523/how-to-use-tar-to-archive-files-from- अलग-निर्देशिका-बिना-निर्देशिका-str) –
स्टैक ओवरफ़्लो प्रोग्रामिंग और विकास प्रश्नों के लिए एक साइट है। यह प्रश्न ऑफ़-विषय प्रतीत होता है क्योंकि यह प्रोग्रामिंग या विकास के बारे में नहीं है। सहायता केंद्र में [मैं यहां कौन से विषय पूछ सकता हूं] (http://stackoverflow.com/help/on-topic) देखें। शायद [सुपर उपयोगकर्ता] (http://superuser.com/) या [यूनिक्स और लिनक्स स्टैक एक्सचेंज] (http://unix.stackexchange.com/) पूछने के लिए एक बेहतर जगह होगी। – jww