मैं एक उप निर्देशिका को ज़िप करना चाहता हूं और इसे कहीं और भेजना चाहता हूं, जब मैं ज़िप कमांड का उपयोग करता हूं तो समस्या यह है कि इसमें निर्देशिकाओं की सभी अवांछित परतें भी शामिल नहीं हैं जिन्हें मैं नहीं चाहता हूं।यूनिक्स ज़िपिंग उप निर्देशिका को मूल निर्देशिका सहित
उदा।
zip -r /new.zip /Unwanted1/Unwanted2/wanted1/wanted2/file.txt
###unzipped produces the following
/Unwanted1/Unwanted2/wanted1/wanted2/file.txt
###I want
/wanted1/wanted2/file.txt
अद्यतन: जिस निर्देशिका में मैं ज़िप करना चाहता हूं, उसके पास कई घोंसला वाली निर्देशिकाएं हैं, इसलिए -r। इसके अलावा पूर्ण पथ से निपटना बहुत अच्छा होगा, पुराने समाधान को जगह के बारे में सीडी के लिए इस्तेमाल किया गया था, लेकिन मुझे बस यह पसंद नहीं आया। शायद यह सबसे अच्छा (केवल) तरीका है।
'-r' का अर्थ रिकर्सिव है। यदि आपको वास्तव में इसका उपयोग करने की आवश्यकता है, तो आपको बाहर निकलने के लिए ज़िप विकल्पों पर पढ़ना चाहिए। यदि आप सिर्फ एक फ़ाइल ज़िप करना चाहते हैं, सीडी उचित पेरेंट डीआईआर (आपके उदाहरण के अनुसार) ./Unwanted1/Unwanted2 और फिर 'ज़िप नया। ज़िप चाहता/file.txt'। ऐसा कहने के लिए, मुझे नहीं लगता कि एक ज़िप विकल्प है जिसका अर्थ है 'इनपुट फ़ाइल नाम पर उपनिर्देशिका जानकारी की पहली एन परतों को छोड़ दें'। सौभाग्य। – shellter
आपने बाद में अपना उदाहरण संपादित किया है, जो गेम को उचित मात्रा में बदल देता है। लोग आमतौर पर इस तरह के पूर्ण पथ नहीं चाहते हैं। 'ज़िप' के अंदर और अधिक पथ ट्रिम/नियंत्रण विकल्प हो सकते हैं लेकिन मुझे शक है। मैन पेज पढ़ें। या 'tar' पर स्विच करें और उस (समान रूप से लंबे) मैन पेज को पढ़ें। और आपको अभी भी आवश्यकता नहीं है- अगर आप एक फ़ाइल जोड़ रहे हैं, चाहे कितना गहरा हो। – IcarusNM