यदि आपने ज़िप स्थापित नहीं किया है तो सबसे पहले इसे निम्न प्रकार से स्थापित करें:
ज़िप संग्रह बनाते समय फ़ाइल बहिष्करण की मूल बातें -x
ध्वज के चारों ओर केंद्रित होती हैं , जिसका उपयोग संग्रह से फ़ाइलों को बाहर करने के लिए किया जाता है जो किसी विशिष्ट नाम या पैटर्न से मेल खाते हैं। यह सबसे बुनियादी है, यह इस तरह दिखेगा:
zip archive.zip files -x "ExcludeMe"
मतलब आप एक फ़ाइल को बाहर कर सकते हैं, कहते हैं कि इसका नाम "Nothanks.jpg" है
zip archive.zip images/ -x "Nothanks.jpg"
आइए कुछ विशिष्ट उदाहरणों को कवर करें जहां यह उपयोगी है।
ज़िप अभिलेखागार से .DS_Store फ़ाइलें बाहर निकालें
यह आमतौर पर अदृश्य मैक मेटाडेटा .DS_Store
फ़ाइलों को ज़िप आर्काइव में शामिल करने से रोकेगा , जिन्हें डिफ़ॉल्ट रूप से बंडल किया जाता है:
zip -r archivename.zip archivedirectory -x "*.DS_Store"
यदि निर्देशिका में उपनिर्देशिकाएँ शामिल हैं, तो आप ds_store फ़ाइलों को उपनिर्देशिकाओं से अलग करने के लिए उस आदेश की एक और भिन्नता का उपयोग करना चाहेंगे:
zip -r archive.zip directory -x "*/\.DS_Store"
नोट: सभी शेल को इस कमांड के ठीक से काम करने के लिए कोटेशन की आवश्यकता नहीं है, लेकिन बैश शेल (ओएस एक्स के लिए डिफ़ॉल्ट) में आपको वाइल्डकार्ड और पैटर्न को छोड़कर उद्धरणों का उपयोग करना होगा।
ज़िप आर्काइव से विशिष्ट फ़ाइल प्रकारों को छोड़ दें
वाइल्डकार्ड के साथ, आप एक्सटेंशन पर ध्यान केंद्रित करके एक निश्चित प्रकार की सभी फ़ाइलों को भी बाहर कर सकते हैं। उदाहरण के लिए, यह कमांड एक संपूर्ण निर्देशिका, किसी भी .jpg
फाइल को शून्य करेगा :
zip -r archive.zip directory -x "*.jpg"
जिसे फ़ाइल नाम में मिलान किए गए किसी विशिष्ट फ़ाइल एक्सटेंशन या पैटर्न के लिए संशोधित किया जा सकता है।
एक ज़िप संग्रह से .it या .svn निर्देशिका को बाहर करें
एक निर्देशिका, माइनस को ज़िप करें .git
और यह सामग्री है:
zip -r zipdir.zip directorytozip -x "*.git*"
.svn
निर्देशिका सहित बिना किसी फ़ोल्डर को ज़िप करें :
zip -r zipped.zip directory -x "*.svn*"
एक ज़िप संग्रह से सभी छिपी फ़ाइलें बाहर निकालें
चूंकि पैटर्न और वाइल्डकार्ड इस्तेमाल किया जा सकता है, तो आप भी किसी एक या सभी अदृश्य फ़ाइलों और फ़ोल्डरों कि एक अवधि के साथ उपसर्ग किया जा रहा द्वारा ऐसा किया जाता है बाहर कर सकते हैं, यह की तरह एक निर्देशिका है, चाहे .svn
या की तरह किसी एक फ़ाइल .bash_profile
या .htaccess
।
zip -r archivename.zip directorytozip -x "*.*"
या सभी उपनिर्देशिकाओं से सभी अदृश्य फ़ाइलों को बाहर करने के लिए:
zip -r archive.zip directory -x "*/\.*"
find community-chess/ -path '*/.*' -prune -o -type f -print | zip ~/community-chess.zip -@
) अपेक्षा से अधिक लंबा है, लेकिन यह ठीक काम करता है। उपनिर्देशिकाएँ भी शामिल हैं, इसलिए +1 और एक स्वीकृत उत्तर :-)