.Tar.gz फ़ाइल बनाते समय निर्देशिका को छोड़कर


119

मेरे पास एक /public_html/फ़ोल्डर है, उस फ़ोल्डर में एक /tmp/फ़ोल्डर है जिसमें 70gb फाइलें पसंद हैं जिनकी मुझे वास्तव में आवश्यकता नहीं है।

अब मैं एक बनाने के लिए कोशिश कर रहा हूँ .tar.gzकी /public_html/छोड़कर/tmp/

यह वह कमांड है जिसे मैंने चलाया:

tar -pczf MyBackup.tar.gz /home/user/public_html/ --exclude "/home/user/public_html/tmp/" 

टार अभी भी बनाया जा रहा है, और ऐसा करने से ls -shमैं देख सकता हूं कि MyBackup.tar.gzपहले से ही लगभग 30 जीबी है , और मुझे यकीन है कि इसके /public_html/बिना /tmp/1GB से अधिक फाइलें नहीं हैं।

मैंने गलत क्या किया?



-pविकल्प बनाने समारोह के संदर्भ में कोई अर्थ नहीं, अधिकार है !?
मार्टिन श्नाइडर

जवाबों:


201

बाहर करने के लिए निर्देशिका पथ के अंत में अंतिम / को हटाने का प्रयास करें

tar -pczf MyBackup.tar.gz /home/user/public_html/ --exclude "/home/user/public_html/tmp" 

7
संपूर्ण फ़ोल्डर और उसकी सामग्री को बाहर करने के लिए: tar -pczvf MyBackup.tar.gz / home / user / public_html / --exclude "/ home / user / public_html / tmp / *"
Drjjy

मुझे tar: Error exit delayed from previous errors.
मैकोस

एक त्रुटि टार हो रही है: सदस्य नामों से अग्रणी `/ 'को हटा रहा है
सेन एनजी

2
काम नहीं करता है, मुझे --exclude="/home/user/public_html/tmp--exclude "/home/user/public_html/tmp
काले

1
मेरी पिछली टिप्पणी की उपेक्षा करें जिसे मैं अब संपादित नहीं कर सकता: स्टैकओवरफ्लो केexclude रूप में निर्दिष्ट करने की आवश्यकता है ।users/3904223/oussaka नोट्स। कम से कम यह केवल एक चीज है जो मेरे लिए काम करती है
kghbln

46

--excludeशामिल करने से पहले आगे बढ़ने की कोशिश करें ।

tar -pczf MyBackup.tar.gz --exclude "/home/user/public_html/tmp/" /home/user/public_html/ 

धन्यवाद, यह मेरे लिए एक पुराने Ubuntu 14.04 LTS बॉक्स पर काम किया।
जेमसी

1
मुझे ओएस एक्स पर भी ऐसा करने की आवश्यकता थी।
द जेजोबटायलर

16

हां, ट्रेलिंग को हटा दें /और (कम से कम ubuntu 11.04 में) दिए गए सभी रास्ते रिश्तेदार या पूर्ण पथ होने चाहिए। आप एक ही कमांड में निरपेक्ष और सापेक्ष पथ नहीं मिला सकते हैं।

sudo tar -czvf 2011.10.24.tar.gz ./start-directory --exclude "home/user/start-directory/logs"

लॉग निर्देशिका को बाहर नहीं करेगा लेकिन

sudo tar -czvf 2011.10.24.tar.gz ./start-directory --exclude "./start-directory/logs"

काम करेगा


1
मेरे लिए काम करें जब मैं बाहर के तर्क में निरपेक्ष पथ को हटा दें।
jruzafa

2
निरपेक्ष और सापेक्ष रास्तों को मिलाने की टिप मेरे लिए यहाँ महत्वपूर्ण थी
दिमित्री DB

12

संपीड़न से निर्देशिका को बाहर करने का सही आदेश है:

tar --exclude='./folder' --exclude='./upload/folder2' -zcvf backup.tar.gz backup/

स्रोत और गंतव्य आइटम से पहले --exclude रखना सुनिश्चित करें ।

और आप अनजिपिंग के बिना tar.gz फ़ाइल की सामग्री की जाँच कर सकते हैं:

tar -tf backup.tar.gz

3

इसे इस्तेमाल करे

tar -pczvf advancedarts.tar.gz /home/user/public_html/ --exclude /home/user/public_html/tmp

2

आप केवल एक का उपयोग करके एक से अधिक को भी बाहर कर सकते हैं --exclude। इस उदाहरण की तरह:

tar -pczf MyBackup.tar.gz --exclude={"/home/user/public_html/tmp","/home/user/public_html/data"} /home/user/public_html/

में --exclude=आप बिना निर्देशिका का नाम समाप्त करना चाहिए /के बीच में और चाहिए MyBackup.tar.gz और / घर / उपयोगकर्ता / public_html /

वाक्य रचना है:

tar <OPTIONS> <TARBALL_WILL_CREATE> <ARGS> <PATH_TO_COMPRESS>

2

स्वीकृत उत्तर ने मेरे लिए काम नहीं किया, विंडोज़ 10 पर अनएक्सट्यूट टार चल रहा है। इसके बजाय, मुझे इस तरह से अंतिम पैरामीटर के रूप में संग्रह करने के लिए फाइलें / डायरियां डालनी थीं :

tar -pczf MyBackup.tar.gz --exclude "/home/user/public_html/tmp/" /home/user/public_html/

फिर काम हुआ।


2

यह मेरे लिए काम किया:

tar -zcvf target.tar.gz target/ --exclude="target/backups" --exclude="target/cache"

2

tar -pczf <target_file.tar.gz> --exclude /path/to/exclude --exclude /another/path/to/exclude/* /path/to/include/ /another/path/to/include/*

उबंटू 19.10 में परीक्षण किया गया।

  1. =के बाद excludeवैकल्पिक है। आप चाहें तो =कीवर्ड के बाद स्पेस की जगह उपयोग कर सकते हैं exclude
  2. excludeस्रोत से पहले पैरामीटर रखा जाना चाहिए।
  3. उपयोग फ़ोल्डर नाम (जैसे 1) या * (2 के समान) के बीच का अंतर है: 2 एक पैकेज में एक खाली फ़ोल्डर शामिल करेगा लेकिन 1 नहीं होगा।

-2

बहिष्करण विकल्प में =संकेत शामिल करने की "आवश्यकता होती है और इसकी आवश्यकता नहीं होती है।

--exclude=/home/user/public_html/tmp

1
"आवश्यक है अगर फ़ोल्डर में नाम का स्थान है
ब्लैक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.