जब आप लिखें:
tar -xf *.gz
tar
आदेश (उदाहरण के लिए) देखता है:
tar -xf abc.tar.gz def.tar.gz ghi.tar.gz
यह एक अनुरोध संग्रह abc.tar.gz
से def.tar.gz
और ghi.tar.gz
निकालने के लिए के रूप में व्याख्या की है। चूंकि फाइलें वहां नहीं हैं, इसलिए आपको चेतावनी संदेश मिलता है।
दूसरे शब्दों में, tar
एक समय में एक ही tar
फ़ाइल (संभावित रूप से संपीड़ित) पर चल रहा है (एक आमंत्रण में)। यह एकाधिक टैर फ़ाइलों पर काम नहीं करता है।
ध्यान दें कि यदि abc.tar.gz
एक फ़ाइल pqr/xyz/important.c
होता है, आप निर्दिष्ट करने के द्वारा सिर्फ एक फ़ाइल निकालने कर सकते हैं:
tar -xf abc.tar.gz pqr/xyz/important.c
अंकन आप इस्तेमाल किया इस अंकन पर केवल एक संस्करण है।
(और हाँ, tar
tar
फ़ाइल के कारण हो सकते हैं। उदाहरण के लिए, जीमेल आपको टैर फ़ाइल या एक गैजिप टैर फ़ाइल भेजने की अनुमति नहीं देता है जिसमें निष्पादन योग्य फ़ाइल होती है। हालांकि, अगर आप एम्बेड करते हैं एक गैर संकुचित tar फाइल के अंदर Gzipped टार फ़ाइल, यह आंतरिक फ़ाइल के अंदर दिखता है नहीं निष्पादन योग्य फ़ाइल खोजने के लिए। मैं इस का उपयोग जब मैं एक निष्पादन configure
स्क्रिप्ट के साथ एक टार फ़ाइल जहाज की जरूरत है।)
स्रोत
2013-06-05 06:57:30
यह तथ्य की उस कथन की वाक्य रचना के कारण होता है टैर कमांड लाइन में केवल एक सिंगल टैर स्वीकार करते हैं और बाकी को कुछ और के रूप में व्याख्या किया जाता है। आप xargs भी ('ls * .gz | xargs -n1 tar -xzf' या समान रूप से) का उपयोग कर सकते हैं। – ShinTakezou
टैर ग्लोब पैटर्न को तर्क के रूप में स्वीकार नहीं करता है (यानी यह इसकी व्याख्या नहीं करेगा) afaik – ShinTakezou
@ShinTakezou: लेकिन खोल '* .gz' नोटेशन का विस्तार करेगा; 'tar' (आमतौर पर)' * .gz' नहीं देखेगा। कभी-कभी, आप नाम में '*' के साथ फ़ाइलों को निकालना चाहते हैं। उदाहरण के लिए: 'tar -xf abc.tar.gz 'src/prog/* name। *'' Src/prog/bigname.c', 'src/prog/smallname.h' जैसी फ़ाइलों को निकालेगा; सिंगल कोट्स '*' और 'tar' को विस्तारित करने से खोल को रोकता है, वास्तव में इसका विस्तार करता है। –