ज़िप संग्रह से फ़ाइलों को कैसे निकालें

एक ज़िप संग्रह से कई विशिष्ट फ़ाइलों या मिलान की गई फ़ाइलों के समूह को बाहर करने का सबसे आसान तरीका मैक ओएस एक्स के अनुकूल यूआई में निर्मित आसान ज़िपिंग उपयोगिता को छोड़कर कमांड लाइन पर बदलना है, जहां शक्तिशाली ज़िप आदेश रहता है।

यह एक लाख और एक कारणों के लिए उपयोगी है, लेकिन इस पोस्ट के लिए प्राथमिक प्रेरणा .DS_Store फ़ाइलों से संबंधित है जो मैक पर बनाए गए ज़िप अभिलेखागार के साथ बंडल हो जाती हैं, केवल फ़ाइल को अनजिप करने वाली दूसरी मशीन को अव्यवस्थित करने के लिए, चाहे वह किसी अन्य पर हो मैक, विंडोज पीसी, या लिनक्स। यह दोनों अनुकूल ज़िप उपकरण और कमांड लाइन ज़िप उपयोगिता के साथ डिफ़ॉल्ट रूप से होता है, और ऐसा इसलिए होता है क्योंकि ज़िप उपकरण औजार डिफ़ॉल्ट व्यवहार छुपा फाइलों को शामिल करना है चाहे वे दिखाए गए हों या नहीं। यह जरूरी नहीं है कि एक बुरी चीज है और कई मामलों में इसे उपयोगी माना जाएगा, लेकिन यदि आप उन्हें नहीं चाहते हैं, या उस मामले के लिए कोई अन्य फाइल, जो आपके अभिलेखागार में दिखाई दे रही है, तो पढ़ें।

एक ज़िप संग्रह से फ़ाइलों को छोड़कर

ज़िप संग्रह बनाने के दौरान फ़ाइल बहिष्करण की मूल बातें -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"

इसे फ़ाइल नाम में मिलान किए गए किसी भी विशिष्ट फ़ाइल एक्सटेंशन या पैटर्न के लिए संशोधित किया जा सकता है।

एक ज़िप संग्रह से .git या .svn निर्देशिका को बाहर निकालें

एक निर्देशिका ज़िप, minus .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 "*/\.*"

उपनिर्देशिकाओं से उन फ़ाइलों को छोड़कर सटीक वाक्यविन्यास के लिए मैकवर्ल्ड फ़ोरम पर एक टिप्पणीकर्ता को चीयर्स।

आखिरकार, यह शक्ति उपयोगकर्ताओं को अभिलेखागार बनाने के लिए टर्मिनल पर कूदने का एक और कारण है। वाइल्डकार्ड समर्थन, बहिष्करण, और ज़िप की वैकल्पिक पासवर्ड सुरक्षा जैसी शक्तिशाली सुविधाओं के साथ, यह सिर्फ अधिक पूर्ण-विशेषीकृत है, और चूंकि यह मैक पर शामिल है, फिर भी आपको उन्नत सुविधाओं का समर्थन करने के लिए एक और ऐप डाउनलोड करने की आवश्यकता नहीं होगी।

और हां, तकनीकी रूप से यदि आप यूआई में रहने के लिए दृढ़ थे, तो आप एक संग्रह बनाने से पहले ओएस एक्स में फ़ोल्डर्स सामग्री को कम करने के लिए फाइंडर और स्पॉटलाइट सर्च ऑपरेटरों का उपयोग कर सकते हैं, या बस सभी का चयन करें और मैन्युअल रूप से कमांड + प्रत्येक फ़ाइल को शामिल न करने के लिए क्लिक करें, लेकिन यह बड़े संग्रहण कार्यों के लिए वास्तव में कुशल नहीं है। इस प्रकार, टर्मिनल आसानी से जीतता है, और कमांड लाइन के चारों ओर केंद्रित होने के बावजूद, मूल बातें सीखने के बाद यह वास्तव में जटिल नहीं होता है।