"ज़िप चेतावनी: नाम का मिलान नहीं" एक निर्देशिका को संपीड़ित करते समय


19

मेरे पास लगभग 180 जीबी का एक फ़ोल्डर है, मुझे इसे पसंद करने की आवश्यकता है:

zip -p password /Volumes/GGZ/faster/mybigfolder/* /Volumes/Storage\ 4/archive.zip

लेकिन यह कहता है:

    zip warning: name not matched: /Volumes/Storage 4/archive.zip

फिर मेरे द्वारा इसे कैसे किया जाएगा? दूसरे नोट पर, archive.zipमौजूद नहीं है, लेकिन मैं इसे बनाने की कोशिश कर रहा हूं।


कोशिश करेंzip -P password /Volumes/Storage\ 4/archive -p /Volumes/GGZ/faster/mybigfolder/*
कोस्टा

जवाबों:


7

आपकी आज्ञा होनी चाहिए:

zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/

मैनुअल पेज ( man zip), दिखाता है कि आपके पास होना चाहिए:

zip <options> <archive> <inpath...>

इसके अलावा, इसके -rलिए "*" शेल ग्लोब पर पुनरावर्तन के विकल्प की अत्यधिक अनुशंसा की जाती है।


अन्य संबंधित गड़बड़ी एक सरल टाइपिंग की गलती है (उदाहरण के लिए, यदि आपने कमांड को एक स्क्रिप्ट से दूसरे में कॉपी किया है)। उदाहरण के लिए, इसके बजाय winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.*, आप गलती से टाइप करते हैं winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.*। अतिरिक्त ध्यान दें Output.zip... आसानी से किया!
AlainD

23

यह त्रुटि निर्देशिका ट्री में संपीड़ित लिंक के कारण भी हो सकती है।

यदि इनमें सही गंतव्य नहीं हैं (शायद इसलिए कि निर्देशिका को स्थानांतरित कर दिया गया है या कहीं और से कॉपी किया गया है), तो जिप लक्ष्य फ़ाइल को संग्रहीत करने के लिए सिमलिंक का पालन करने का प्रयास करेगा।

आप -y(या --symlinks) विकल्प का उपयोग करके इससे बच सकते हैं (और वह प्रभाव भी प्राप्त कर सकते हैं जो आप वैसे भी चाहते हैं, जो फ़ाइल की कई प्रतियों को संग्रहीत नहीं करना है )।


0

फ़ाइलों को संपीड़ित करने के लिए -rग्लोब ( *) के बजाय पुनरावर्ती ध्वज ( ) का उपयोग करें । इसके अलावा, पहले संग्रह नाम निर्दिष्ट करें और फिर फ़ाइलों की सूची दें:

zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/

0

मुझे यह त्रुटि अतीत में एक अलग कारण से भी मिली है जिसे -rस्विच ठीक नहीं कर सकता है। क्या हुआ कि मैं फ़ाइलों को निम्न बैश कोड / चर के साथ ज़िप में जोड़ने के लिए आधारित हूं

somevar=`ls -1 somedir`

समस्या यह है कि lsबस फाइलों को सूचीबद्ध करता है जैसे कि यह वर्तमान निर्देशिका में था और यही कारण है कि zipशिकायत है (अनिवार्य रूप से फाइलें ज़िप के लिए मौजूद नहीं हैं क्योंकि यह गलत / वर्तमान निर्देशिका में देखने के लिए कहा जा रहा है)।

यदि यह आपका मुद्दा है तो आप इसे इस तरह सही कर सकते हैं:

somevar=`ls -1d somedir/*`

जैसा कि आप देख सकते हैं कि मैंने -dस्विच का उपयोग किया और /*निर्देशिका नाम के अंत में भी और फिर फाइलें सफलतापूर्वक जोड़ी गईं।

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