कैसे अनज़िप लक्ष्य निर्देशिका निर्दिष्ट करें


21

क्या linux zip कमांड पर कोई विकल्प है जैसे कि मैं टार्गेट डाइरेक्टरी को हार्ड कोड कर सकता हूं जो इसे अनज़िप करता है। उदाहरण के लिए, मैं myzipfile.zip में / .Mydir फ़ाइलों को ज़िप करना चाहूंगा, लेकिन मैं चाहता हूं कि अनज़िप कमांड एक विशिष्ट निर्देशिका "प्रॉक्स" का निर्माण करे और जो फ़ाइलों के नीचे थीं ।/mydir का विस्तार करें।

zip -r myzipfile.zip mydir (-option to expand into 'projx' when unzipped? )

जवाबों:


18

ऐसा कोई विकल्प नहीं है, कम से कम Info-ZIP के लिए नहीं। आपको स्वयं एक निर्देशिका तैयार करनी होगी , उसमें अपनी फ़ाइलों को ले जाना / कॉपी करना और फिर उसे पास करना होगा zip

यदि निर्देशिका पहले से मौजूद है तो निष्कर्षण के लिए लक्ष्य निर्देशिका निर्दिष्ट -dकरने के unzipलिए सिर्फ विकल्प पास करें।


4

ऐसा करने के लिए एक और तरीका है। आप निम्न विधि का उपयोग करके ज़िप फ़ाइल की संपूर्ण सामग्री को समतल कर सकते हैं। टारगेट डायरेक्टरी " प्रॉक्स " है और निम्नलिखित कमांड को निष्पादित करता है।

cd /projx && unzip -j /path/to/myzipfile.zip

विकल्प -j को "जंक पाथ" कहा जाता है और बस किसी भी डायरेक्टरी स्ट्रक्चर को निकालने के बजाय प्रत्येक फाइल को वर्तमान निर्देशिका में डंप करता है।


0

मैं एक विशिष्ट कमांड लाइन विकल्प के बारे में नहीं जानता, लेकिन आप लक्ष्य तक पहुँचने के लिए निम्न कमांड का उपयोग कर सकते हैं:

ln -s mydir projx
zip -r myzipfile.zip projx
rm projx

पहला कमांड एक प्रतीकात्मक लिंक बनाता है, जिससे आप फाइलों को अंदर तक mydirभी पहुंचा सकते हैं projx। फिर Info-ZIP(संस्करण 2.31 के साथ परीक्षण) का उपयोग करके प्रतीकात्मक लिंक को संदर्भित किया जाता है (यह डिफ़ॉल्ट है, जब तक आप निर्दिष्ट नहीं करते हैं -y) और फाइलें पुनरावर्ती रूप से संग्रहीत की जाती हैं:

adding: projx/ (stored 0%)
adding: projx/foo.1 (deflated 23%)
adding: projx/bar.2 (deflated 73%)
...

आप देखते हैं, फ़ोल्डर का नाम फ़ाइल में संग्रहीत है, भी - इसलिए निष्कर्षण पर निर्देशिका projxबनाई गई है।

हालाँकि, मैं निरपेक्ष रास्तों को स्टोर करने की संभावना के बारे में नहीं सोच सकता, लेकिन यह वैसे भी एक बुरा विचार है।


निरपेक्ष पथ केवल विकल्प निर्दिष्ट करके MacOS पर काम करता है -jj। अन्य ऑपरेटिंग सिस्टम पर केवल विकल्प -jका समर्थन किया जाता है (और -jjइसके रूप में व्याख्या की जाती है -j) जो किसी भी अग्रणी पथ को हटा देता है और इस तरह विपरीत (एक बहुत चालाक डिजाइन ...) के लिए अग्रणी होता है।
स्कै जूल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.