मैं एक अलग निर्देशिका में टार के साथ कैसे निकालूं?


18

यह काम नहीं करता है:

tar xf /tmp/foo.tar.gz foo/bar
tar: foo/bar: Not found in archive

यह मेरे लिए स्पष्ट नहीं है कि इसे बाहर निकालने और फाइलों को स्थानांतरित करने से आगे क्या होगा।

जवाबों:


28

से man tar:

     -C directory
         In c and r mode, this changes the directory before adding the
         following files.  In x mode, change directories after opening the
         archive but before extracting entries from the archive.

यानी, tar xC /foo/bar -f /tmp/foo.tar.gzनौकरी करनी चाहिए। (FreeBSD पर, लेकिन GNU टार मूल रूप से इस संबंध में समान है, "मैनुअल में वर्किंग डायरेक्टरी को बदलना" देखें )


4
मैं टार के गैर-जीएनयू संस्करणों के साथ इस व्यवहार का परीक्षण करने के लिए आश्वस्त हूं । सोलारिस मैनुअल पेज में केवल इस विकल्प को जोड़ने और संचालन को बदलने का उल्लेख है । जिज्ञासु होने के कारण मैंने इसे एक एक्सट्रैक्ट ऑपरेशन के साथ टेस्ट किया है । सोलारिस के टार ने कोई त्रुटि या चेतावनी जारी नहीं की और वर्तमान फ़ोल्डर में संग्रह को निकाला =: - /
ktf

1
टार के AIX संस्करण पर भी काम नहीं करता है: 'फ़ाइल -C संग्रह में मौजूद नहीं है' - '-C' चार्ट बनाने के लिए काम करता है।
डार्कहार्ट

क्या नए नाम के साथ मुख्य निर्देशिका को स्वैप करना संभव है?
टॉफूटिम

9

आप कहीं और सिर्फ एक tar संग्रह को निकालने के लिए चाहते हैं, तो सीडी गंतव्य निर्देशिका में और अनटार यह वहाँ:

 mkdir -p foo/bar
 cd foo/bar
 tar xzvf /tmp/foo.tar.gz

आपके द्वारा उपयोग की गई कमांड foo/barआर्काइव में फ़ाइल को खोजेगी और उसे निकालेगी।


9

करते हुए:

(cd foo/bar ; tar xf /tmp/foo.tar.gz )

नौकरी कर लेंगे।

असल में, जो कुछ भी होता है वह एक नया शेल (कोष्ठक) पैदा कर रहा है, इस उपधारा में, निर्देशिका को बदलें foo/barऔर फिर फ़ाइल को अनटार्ट करें।

आप ठीक काम करता है सुनिश्चित करने के लिए ;द्वारा बदल सकते हैं।&&cd


1
वाह कि आप एक खोल शुरू कर सकते हैं जैसे कि बहुत अच्छा है! मुझे नहीं पता था कि आप ऐसा कर सकते हैं।
किट सुंडे

0
tar -xf ancd.tar.gz my/name/file

आप ./fileटार फाइल के बाद फाइल का नाम दे सकते हैं ।

tar -xf ancd.tar.gz ./my/name/file

अगर यह काम कर रहा है तो इसका मतलब है कि आपने एक टार बनाया है ./। टार कंटेंट देखने के लिए कम कमांड का उपयोग करें।

less ...tar.file  

0

मुझे लगता है कि यह एक समान मुद्दा है और इसे हल कर दिया है।

मुद्दा बनाई गई फ़ाइल के बजाय फ़ाइल निर्माण में था।

जब dir A में किसी फ़ाइल को टारगेट करने और ट्रांसफर करने का प्रयास किया जाता है, तो मैंने टार कमांड में मूल फ़ाइल को पथ प्रदान किया

tar -cvf MyFile.tar /foo/bar/dir/not/needed/path/*

मैं जो करने में सक्षम था, वह है

cd /foo/bar/dir/not/needed/
tar -cvf /tmp/MyFile.tar path*

टारबॉल को स्थानांतरित करने और निकालने पर, आवश्यक उपखंड बनाए जाते हैं।

tar -xvf MyFile.tar

0

वह निर्देशिका बदलें जहां आप निकालना चाहते हैं

cd /u02/restore

अगर /u01/backup.tar के तहत एक्सट्रैक्ट फाइल का स्थान है

निम्नानुसार निकालें:

cd /u02/restore
tar -xvf /u01/backup.tar

0

आदेश:

tar -xzvf foo.tar.gz -C /home/user/bar/

/home/user/barसंसाधित फ़ाइल को प्रिंट करते हुए, निर्देशिका में इनपुट फ़ाइल "foo.tar.gz" को निकाल देगा ।

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