ज़िपित फ़ोल्डर में अनज़ैप्ड फ़ाइलों को जोड़ना


32

मैं एक मौजूदा पहले से ही ज़िप किए गए फ़ोल्डर में अनज़ैप्ड फ़ाइलों को जोड़ने की कोशिश कर रहा हूँ new folder.zip। क्या zip -r new folder.zipउनके लिए कुछ अनज़ैप्ड फ़ाइलों को जोड़ने के बाद उपयोग करना संभव है ? क्या यह कमांड फ़ोल्डर को संपीड़ित करेगा? क्या ऐसा करने का कोई विकल्प है?


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

जवाबों:


44

अद्यतन ध्वज का उपयोग करें: -u

उदाहरण:

zip -ur existing.zip myFolder

यह कमांड कंप्रेस और myFolder(और यह सामग्री है) को जोड़ देगा existing.zip


उन्नत उपयोग:

अद्यतन ध्वज वास्तव में मौजूदा लोगों के खिलाफ आने वाली फ़ाइलों की तुलना करता है और या तो नई फाइलें जोड़ देगा, या मौजूदा लोगों को अपडेट करेगा।

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

यदि आपके पास स्रोत फ़ाइलों तक पहुंच नहीं है, तो आप ज़िप फ़ाइल को अनज़िप कर सकते हैं, फिर वांछित फ़ाइलों को अपडेट कर सकते हैं, और फिर -uध्वज के साथ फिर से ज़िप कर सकते हैं । फिर, केवल परिवर्तित फ़ाइलों को ज़िप किया जाएगा।

उदाहरण:

मूल स्रोत संरचना


ParentDir
├── file1.txt
├── file2.txt
├── ChildDir
│   ├── file3.txt
│   ├── Logs
│   │   ├── logs1.txt
│   │   ├── logs2.txt
│   │   ├── logs3.txt

अपडेटेड सोर्स स्ट्रक्चर


ParentDir
├── file1.txt
├── file2.txt
├── ChildDir
│   ├── file3.txt
│   ├── Logs
│   │   ├── logs1.txt
│   │   ├── logs2.txt
│   │   ├── logs3.txt 
│   │   ├── logs4.txt <-- NEW FILE 

प्रयोग

$ zip -ur existing.zip ParentDir 
> updating: ParentDir/ChildDir/Logs (stored 0%)
>   adding: ParentDir/ChildDir/Logs/logs4.txt (stored 96%)

धन्यवाद! मैं इसे जोड़ने के लिए फ़ोल्डर को ज़िप में कैसे निर्दिष्ट कर सकता हूं ?
हारून एसाव

मैंने आपके प्रश्न का उत्तर देने के लिए एक खंड जोड़ा। :)
एथन स्ट्राइडर

0

मेरा मानना ​​है कि आप इस कमांड का उपयोग करके फ़ाइलें जोड़ सकते हैं:

zip -r zipfile.zip newfile.txt newfile1.txt

-rज़िप कमांड का विकल्प आपको फ़ाइलों को जोड़ने की अनुमति देता है।


-rपुनरावर्ती विकल्प है।
ctrl-alt-delor 20

@richard, मैं इसे ठीक करने वाला हूं।
गिम्मे

@richard, मेरे द्वारा लिए गए स्रोत को बताता है कि आप मौजूदा zipped
ryekayo

2
जोड़ें - मौजूदा प्रविष्टियों को अपडेट करें और नई फाइलें जोड़ें। यदि संग्रह मौजूद नहीं है, तो इसे बनाएं। यह डिफ़ॉल्ट मोड है। (फ़ाइलों को बदलने या जोड़ने के लिए कोई विकल्प की आवश्यकता -rनहीं है। निर्देशिकाओं को जोड़ते समय, या निर्देशिकाओं को जोड़ते समय उपयोग किया जा सकता है। किसी भी समय जब आप केवल निर्देशिका और कोई सामग्री नहीं जोड़ना चाहते हैं, तो बहुत अधिक समय तो संक्षेप में उदाहरण सही है, लेकिन स्पष्टीकरण गलत है।) (इसे जांचने के लिए सबसे अच्छा है, यह मैनुअल की सिर्फ मेरी व्याख्या है)।
ctrl-alt-delor-delor

2
सुरक्षा कारणों से, क्या आप सुनिश्चित हैं कि आप किसी मौजूदा संग्रह को संशोधित करना चाहते हैं? इसके बजाय मैं कम से कम एक सुरक्षा प्रतिलिपि बनाता हूं, जोडता हूं, और फिर नए को करने से पहले संग्रह की अखंडता की पुनरावृत्ति करता हूं।
एमडीपीसी


0

मैंने zipकमांड को सफलता के साथ प्रयोग किया । साथ हो जाना (जी) विकल्प, क्रम में एक सबफ़ोल्डर जोड़ने के लिए folder1/folder2फ़ाइलों से युक्त fileA.txtऔर fileB.txt:

zip -gr folder.zip folder1/folder2

-rइसका मतलब है कि पुनरावृत्ति होना

मेरी समझ से -जी को ज़िप फ़ाइलों को विकसित करना चाहिए, एक नई ज़िप फ़ाइल नहीं बनानी चाहिए (जो बहुत बड़े ज़िप अभिलेखागार के साथ उपयोगी हो सकती है)। समस्याओं के मामले में आप पहले सबफ़ोल्डर को folder.zip में बनाने की कोशिश कर सकते हैं (जैसे):

zip -g folder.zip folder1
zip -g folder.zip folder2

0

यदि आपके पास अपने ज़िप संग्रह के साथ एक ही स्थान पर बहुत सारी फ़ाइल हैं और आप उन सभी को संग्रह में कॉपी करना चाहते हैं, तो आप कर सकते हैं:

zip -ur zipfile.zip !(zipfile.zip)

यह आपकी जिप फाइल ( -uविकल्प) को रिवर्सीवली ( -rविकल्प) अपडेट करता है, जिसमें जिप फाइल को छोड़कर सभी फाइलें मिल जाती हैं ( !यह जिपफाइल का निषेध है)

फिर, आप ऊपर दिए गए समान नियम का पालन करते हुए बस ज़िप फ़ाइल को छोड़कर सभी फाइलों को हटा सकते हैं:

rm !(zipfile.zip)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.