जवाबों:
unzip <target-zip-file> '<folder-to-extract/*>' -d <destination-path>
ईएल 6 पर ठीक काम करता है
"\\"
तो इसका उपयोग किया जाएगा (अन्यथा आपको हमेशा याद रखना होगा कि कौन से अक्षर विशेष बच रहे हैं)। यदि लेखक का मतलब "ग्लॉब कैरेक्टर को उद्धृत करना" (अनावश्यक) है तो यह एक भिन्नता है। किसी भी तरह से एक एकल backslash कि टाइपो है।
प्रयत्न, कोशिश:
unzip /path/to/archive.zip 'in/archive/folder/*' -d /path/to/unzip/to
caution: filename not matched: foldername/\*
जब मैं चलाने unzip $repozip "$2-master/\*" -d /srv/www/magento/
जहां $2
ज़िप में फ़ोल्डर का नाम मैं से बाहर सभी फ़ाइलों और फ़ोल्डरों को खींचने के लिए चाहते हैं
"path/*"
।
mv
बाद में उन फ़ाइलों को प्राप्त करने के लिए उपयोग कर रहा हूं जहां मुझे उनकी आवश्यकता थी।
-j
।
-j
सभी पथ जानकारी स्ट्रिप्स, और सभी फ़ाइलें लक्ष्य फ़ोल्डर में जाती हैं। क्या मार्ग का केवल सामान्य हिस्सा निकालने का एक तरीका है? ज़ीन को अकिन -r
।
मौजूदा दो उत्तर दोनों सही हैं, लेकिन लक्ष्य निर्देशिका को निर्दिष्ट करने के लिए यह थोड़ा मुश्किल है, जिसे बेहतर स्पष्ट किया जाना चाहिए।
मान लीजिए कि /target/root/
मूल unzip कार्रवाई पर लक्ष्य dir है, जैसे:
unzip -qq src.zip -d "/target/root/"
फिर, हमें /target/root/
लक्ष्य dir के बाद भी उसी का उपयोग करने की आवश्यकता है, भले ही हम केवल एक विशिष्ट उप-निर्देशिका निकालना चाहते हैं, जिस तरह से अनज़िप काम करता है:
unzip -qq src.zip "sub/dir/*" "/target/root/"
आखिरकार, नियम वास्तव में सरल है, विकल्प के लिए समान लक्ष्य रूट निर्देशिका का उपयोग करें-d
।
BTW, -qq
विकल्प अनज़िप के लिए वास्तव में शांत होना है, इसे हटाने के लिए स्वतंत्र महसूस करें।