2008-09-20 21 views
22

मैक ओएस एक्स पर, आप कुछ फ़ाइलों का चयन करके और प्रासंगिक मेनू या फ़ाइल मेनू से "संपीड़ित" चुनकर खोजक से ज़िप संग्रह बना सकते हैं। दुर्भाग्यवश, परिणामी फ़ाइल zip कमांड (डिफ़ॉल्ट विकल्पों के साथ) द्वारा बनाए गए संग्रह के समान नहीं है।खोजक की "संपीड़न" मेनू आइटम के समान स्वरूप में ज़िप फ़ाइल कैसे बनाएं?

यह भेद ऐप्पल द्वारा संचालित कम से कम एक सेवा के लिए मायने रखता है, जो zip कमांड के साथ बनाए गए अभिलेखागार को स्वीकार करने में विफल रहता है। अभिलेखागार मैन्युअल रूप से बनाने के लिए मुझे अपनी रिलीज बिल्ड प्रक्रिया पूरी तरह से स्वचालित करने से रोक रहा है।

मैं शैल स्क्रिप्ट के भीतर सही प्रारूप में ज़िप संग्रह कैसे बना सकता हूं?

संपादित करें: बहुत पहले इस प्रश्न लिखने के बाद से, मैं समझ गए होंगे ditto और zip के बीच मुख्य अंतर वे सांकेतिक लिंक कैसे संभाल है कि: क्योंकि एक एप्लिकेशन बंडल के अंदर कोड हस्ताक्षर एक सिमलिंक सम्मिलित हैं, तो संरक्षित करने की आवश्यकता है एक लिंक के रूप में और एक नियमित फ़ाइल के रूप में संग्रहित नहीं है। ditto डिफ़ॉल्ट रूप से ऐसा करता है, लेकिन zip नहीं है (विकल्प -y आवश्यक है)।

+0

ओएस एक्स का कौन सा संस्करण चला रहे हैं --keepParent? – freespace

+0

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

उत्तर

14

इस प्रकार डिट्टो कमांड लाइन उपकरण का उपयोग करें:

ditto -ck --rsrc --sequesterRsrc folder file.zip 

अधिक के लिए डिट्टो आदमी पृष्ठ देखें।

+1

इसके साथ, मैं अभी भी एक .zip का उत्पादन नहीं कर सकता जिसमें खोजक के संपीड़न फ़ंक्शन के समान हस्ताक्षर है। हालांकि, मुझे डिट्टो के बारे में पता नहीं था: डी – freespace

+0

इसी तरह, लेकिन यह 'ज़िप' के आउटपुट से काफी करीब दिखता है।अंतर टाइमस्टैम्प या इसी तरह के नीचे हो सकता है। –

+9

--keepParent में जोड़ने के लिए याद रखें। यदि आप मैन पेज (मैन डिट्टो) पढ़ते हैं: कमांड: ditto -c -k --sequesterRsrc --keepParent src_directory archive.zip खोजक की संपीड़न कार्यक्षमता के समान ही एक PKZip संग्रह बनाएगा। – Harry

1

सुराग 'ऑटोमेशन' टैग में है।

Automator.app में एक क्रिया बनाएं जो 'संग्रह बनाएं' कार्रवाई का उपयोग करती है, इसे कमांड लाइन से आज़माएं ('automator' देखें)।

+0

दिलचस्प, मुझे नहीं पता था कि एक ऑटोमेटर शेल कमांड था! लेकिन क्या हर बार जब मैं बिल्ड करता हूं तो क्या मेरे डॉक में थोड़ा रोबोट ऊपर और नीचे उछाल नहीं देगा? – benzado

+0

जब तक कार्रवाई इनपुट के लिए संकेत नहीं देती है, तब तक इसे बिना किसी बाउंसिंग रोबोट के बेकार और चलना चाहिए। –

+0

कमांड लाइन टूल सहित ऑटोमेटर के लिए विंडो प्रबंधक तक पहुंच की आवश्यकता होती है, और इसलिए इसे केवल कंसोल सत्र के हिस्से के रूप में लॉन्च किया जा सकता है, न कि अप्रत्याशित। – millenomi

17

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

मिलीनोमी का जवाब मेरे लिए करीब आया, लेकिन यह आदेश काम खत्म हो गया है। आईट्यून्स कनेक्ट ने मेरा निर्माण स्वीकार कर लिया, और ऐप को मंजूरी मिली और इसे कोई समस्या नहीं डाउनलोड की जा सकती है, इसलिए इसका परीक्षण किया गया है।

ditto -c -k --sequesterRsrc --keepParent AppName.app AppName.zip 
8

आदमी डिट्टो कहता है:

The command: 
     ditto -c -k --sequesterRsrc --keepParent src_directory archive.zip 
will create a PKZip archive similarly to the Finder's Compress functionality. 

नोटिस