मैं tar.gz संग्रह से केवल कुछ विशिष्ट फ़ोल्डर कैसे निकाल सकता हूं


3

मान लीजिए कि मेरे पास संग्रह है website.tar.gz, अंदर निम्नलिखित फ़ोल्डर संरचना है:

home  
  -mike 
    -www
      -coolwebsite
        file1
        file2
        file3
        etc.

जब मैं अचीव को निकालता हूं, तो यह बिल्कुल उसी फ़ोल्डर पदानुक्रम को पुनः बनाता है (बेशक)। मैं उम्मीद कर रहा था कि उदाहरण के लिए केवल "कूलवेबसाइट" फ़ोल्डर को निकालने का एक तरीका है जो भी इस समय फ़ोल्डर में है।

तो अगर मैं अपने सर्वर पर हूँ mydir/ और मैं निकालता हूं website.tar.gz, मैं चाहता हूं कि परिणाम हो coolwebsite फ़ोल्डर, सभी पूर्ववर्ती फ़ोल्डर के बिना। क्या यह संभव है ?

जवाबों:


3

बस यह प्रयास करें:

tar xvf tarfile --strip=4 ./home/mike/www/coolwebsite/*

निर्देशिकाओं के 4 स्तरों को हटाना चाहिए ("" सहित)

EDIT: इनपुट फ़ाइल है तो विकल्प z (यानी टार xzvf ...) जोड़ें gzip 'ईडी


1
यह आदेश मेरे लिए GNU tar 1.23 के साथ काम नहीं किया (त्रुटि: tar: ./Symfony/*: Not found in archive। यह काम किया जब मैंने हटाया ./ पथ से भाग हालांकि। और हां, मैं पुष्टि कर सकता हूं कि संग्रह के अंदर शीर्ष स्तर की निर्देशिका को सिम्फनी नाम दिया गया था। इसके अतिरिक्त मुझे अपेंड करना पड़ा --wildcards विकल्प। हो सकता है कि इस उत्तर को अपडेट की आवश्यकता हो?
Hubro

यह मेरे लिए सही नहीं रहा। हालाँकि, के साथ GNU टार निम्नलिखित स्विच ने मेरे लिए काम किया: --strip-components=4
Tristan Jahier
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.