मैं कुछ फ़ाइलों को पैकेज करने के लिए एक शेल स्क्रिप्ट बना रहा हूं। मैं इस तरह एक निर्देशिका जिप कर रहा हूं:
zip -r /Users/me/development/something/out.zip /Users/me/development/something/folder/
समस्या यह है कि परिणामी आउट.ज़िप संग्रह में संपूर्ण फ़ाइल पथ है। यही है, जब अनज़िप किया जाता है, तो इसमें पूरे "/ उपयोगकर्ता / मेरे / विकास / अन्य चीज़ /" पथ होंगे। क्या एक संग्रह में निर्देशिका डालते समय इन गहरे रास्तों से बचना संभव है?
जब मैं लक्ष्य निर्देशिका के अंदर से ज़िप चलाता हूं, तो मुझे यह समस्या नहीं है।
zip -r out.zip ./folder/
इस मामले में, मुझे सभी कबाड़ नहीं मिले। हालांकि, जहां भी प्रश्न होगा, वहां से स्क्रिप्ट को बुलाया जाएगा।
FWIW, मैं मैक ओएस एक्स 10.6 पर बैश का उपयोग कर रहा हूं।
$ pushd /some/path ; do-something ; popd
$ ( cd /some/path ; do-something )