मैं यूनिक्स कमांड लाइन पर ज़िप / अनज़िप कैसे करूँ?


540

मैं कमांड लाइन से ज़िप अभिलेखागार कैसे बना और निकाल सकता हूँ?


3
@joachim, आपको एक प्रश्न में प्रश्न पूछना चाहिए और एक उत्तर में उत्तर प्रदान करना चाहिए। अपने स्वयं के प्रश्नों के उत्तर देने में कोई समस्या नहीं है, लेकिन स्वयं प्रश्न के भाग के रूप में नहीं, क्योंकि यह एसओ के संपूर्ण समुदाय-वोट-ऑन-द-बेस्ट-उत्तर लाभ को तोड़ देता है। इसके अलावा, यह शायद सुपरसर के लिए बेहतर अनुकूल है क्योंकि यह प्रोग्रामिंग से संबंधित नहीं है।

2
यदि आप ऑनलाइन प्रवेश पाने के लिए दस्तावेज़ों को कैसे देखते हैं और यदि आप अपना लॉगिन भूल जाते हैं तो एसओ की जाँच कैसे करेंगे?

@ rlb.usa: मैं बहुत सारे अलग-अलग स्थानों पर बहुत सारे सर्वर पर काम करता हूं। इस तरह से एक नोट के लिए एसए का उपयोग करना अन्य लोगों को भी मदद करता है, जैसा कि मैं इसे देखता हूं।
जोचिम २ j

जवाबों:


662

आम तौर पर एक tarअसम्पीडित संग्रह बनाने के लिए और या तो gzipया bzip2उस संग्रह को संपीड़ित करने के लिए उपयोग करता है । संबंधित gunzipऔर bunzip2आदेशों का उपयोग संग्रह को अनकम्प्रेस्ड करने के लिए किया जा सकता है, या आप केवल tarकमांड पर झंडे का उपयोग कर सकते हैं ।

यदि आप विशेष रूप से जिप फाइल फॉर्मेट का जिक्र कर रहे हैं , तो आप बस zipऔर unzipकमांड का उपयोग कर सकते हैं ।

सिकुड़ जाना:

zip squash.zip file1 file2 file3

या एक निर्देशिका ज़िप करने के लिए

zip -r squash.zip dir1

अनकम्प्रेस्ड करने के लिए:

unzip squash.zip

यह आपकी वर्तमान कार्यशील निर्देशिका में इसे अनज़िप करता है।


72
मैं व्यक्तिगत रूप से केवल कभी zip -r9 archive.zip files...वाक्यविन्यास (-r = पुनरावर्ती -9 = अधिकतम संपीड़न) का उपयोग करता हूं ।
एम्फ़ैटेमाचिन

3
बस एक साइड नोट के रूप में: zip.ZIP अभिलेखागार के कई अलग-अलग स्वाद बना सकते हैं, साथ ही कई अलग-अलग कंप्रेशर्स का उपयोग कर सकते हैं। दूसरी ओर, इसी तरह के कई अन्य संपीड़न उपकरण हैं: 7-जिप, गज़िप, बज़िप 2, रज़िप, आदि, जो विनिमेय नहीं हैं।
पोलीमोन

5
मामले में आप मूल निर्देशिका को शामिल नहीं करना चाहते:cd dir1; zip -r ../squash.zip *
Marinos

मैं उलझन में हूं, मैंने यह किया है और फुलाव और अर्क की एक लंबी सूची प्राप्त करता हूं, लेकिन जब मैं निर्देशिका की जांच करता हूं तो यह खाली है, मूल ज़िप फ़ाइल के लिए सहेजें? यह सब कहाँ जा रहा है?
समर डेवलपर

11
रिकॉर्ड के लिए, सभी फ़ाइलों को सीधे वर्तमान निर्देशिका में डालने के बजाय unzip -d myfolder squash.zipएक अलग नई निर्देशिका ( myfolder) में निकालने के लिए उपयोग करें , जो कि नाराज हो सकती है अगर ज़िप फ़ाइल में अपने शीर्ष स्तर में कई फाइलें और निर्देशिकाएं हों। यह mimics बताता है कि अधिकांश UI अनज़िप टूल कैसे काम करते हैं।
अलेक्जेंडर क्लिमेटशेक

64

UNIX डेरिवेटिव के तहत संपीड़ित करने और अनसेप करने के विभिन्न तरीकों की एक बहुत बड़ी संख्या है, इसलिए मैं आपको एक विशिष्ट फ़ाइल प्रारूप के बजाय सामान्य अर्थ में "ज़िप" मानने जा रहा हूं ।

आप जीएनयू tarकार्यक्रम के साथ (संपीड़ित प्रारूप में) फाइल को ज़िप कर सकते हैं :

tar -zcvf myfile.tgz .

जो वर्तमान निर्देशिका करेगा। .यदि आप कुछ और चाहते हैं तो अन्य फ़ाइल नामों से बदलें ।

उस फ़ाइल को अनज़िप करने के लिए, उपयोग करें:

tar -zxvf myfile.tgz

यह निश्चित रूप से मान रहा है कि आपके पास tarसंपीड़न करने के साथ-साथ फ़ाइलों को एक में संयोजित करने में सक्षम है।

यदि नहीं, तो आप सिर्फ उपयोग कर सकते हैं tar cvf, जिसके बाद gzipसंपीड़न के लिए (फिर से, यदि उपलब्ध हो) और gunzipके द्वारा पीछा किया tar xvf


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


या tar jcvf file.tar.bz2...bzip2 प्रारूप में या tar Jcvf file.tar.xz ...xz संपीड़न के लिए सेक करने के लिए उपयोग करें ।
ओल्डमिमर

4
मैंने आपके उत्तर को अस्वीकार कर दिया क्योंकि सवाल यह है कि ज़िप अभिलेखागार से कैसे निपटें, फाइलों को टारगेट न करें।
स्टारफिश

3
@Starfish, जो निश्चित रूप से आपके अधिकारों के भीतर है, कम से कम यह समझाने के लिए धन्यवाद, कि इतने सारे लोग ऐसा करने के लिए समय नहीं लेते हैं :-) मैंने एक विशिष्ट प्रारूप के बजाय अधिक सामान्य ज्ञान (संपीड़न) में "ज़िप" लिया, इसलिए मैं इसे और स्पष्ट करूंगा।

ध्यान रखें कि विभिन्न प्लेटफार्मों, मैक से लिनक्स या इसके विपरीत चलते समय टार अभिलेख सही ढंग से काम नहीं कर सकते हैं। जिप ज्यादा सुरक्षित है, क्योंकि यह सभी प्रणालियों पर सही ढंग से काम करता है।
user1751825

मुझे लगता है कि तकनीकी रूप से यह gzip है, इसलिए यह ठीक है। मेरा अनुमान। बहुत स्पष्ट रूप से नहीं, हालांकि सवाल पूछा गया था।
उल्लू

30

यदि आपके पास ज़िप और अनज़िप पैकेज स्थापित नहीं हैं और आपके पास जावा है, तो आप jarअनज़िप करने के लिए उपयोग कर सकते हैं :

jar -xf file.zip

3
न मेरा सर्वर, न अनजिप, जिप, 7z, कुछ भी नहीं ... और यह काम कर गया। धन्यवाद!
डेरियस

2
यह एक शानदार टिप है।
स्टारफिश

29

खैर, जब विभिन्न ऑपरेटिंग सिस्टम के लिए फाइल वितरित करने की बात आती है, तो मैं 7-ज़िप की सिफारिश करूंगा ।

आमतौर पर पैकेज में p7zip, आपको एक कमांड 7zऔर 7zaकमांड मिलेगी , जिसके साथ आप अपने खुद के 7z अभिलेखागार बना सकते हैं।

7zaमानक ( pkzip ) ज़िप अभिलेखागार को भी हटा सकते हैं (और उन्हें -tzipस्विच के साथ भी बना सकते हैं )।

को संपीड़ित:

7za a archive.7z file1 file2 directory/

decompressing:

7za x archive.7z

यह -sfxस्विच के साथ स्व-निष्कर्षण अभिलेखागार भी बना सकता है :

7za a -sfx archive.exe files1 file2 dir

मैं इस विधि की सलाह देता हूं कि विंडोज उपयोगकर्ता 7z अभिलेखागार नहीं खोल सकते हैं (यदि आप उस के लिए एक उपकरण की सलाह देना चाहते हैं: PeaZip )।

यदि आप अपने टारबॉल के साथ एक ही संपीड़न एल्गोरिदम का उपयोग करना चाहते हैं, तो इसके -Jसाथ स्विच का उपयोग करें tar:

tar cJf archive.tar.xz file1 file2 dir

xzएक UNIX उपकरण, संपीड़न के लिए LZMA2 का उपयोग करता है, लेकिन जिस तरह से काम करता है gz, bz2, आदि काम करता है। यह एक फिल्टर के रूप में भी काम करता है।

7z UNIX पर संपूर्ण फाइल सिस्टम जानकारी के साथ अभिलेखागार नहीं बनाता है, इसलिए आपको tar7z का उपयोग करने से पहले उपयोग करने की आवश्यकता होगी (लेकिन चूंकि 7z tarफ़ाइल के बारे में अन्य जानकारी संग्रहीत करता है, मैं xzइसका उपयोग करने की सलाह दूंगा , क्योंकि यह इसके लिए डिज़ाइन किया गया है):

tar cf - file1 file2 dir | 7za z -si archive.tar.7z

2
मुझे शायद इस उत्तर के साथ जोड़ना चाहिए atool, यह एक अच्छा सा उपकरण है जो कई अलग-अलग कम्प्रेसर का उपयोग करके अधिक आरामदायक बनाता है। बाँधें कि aएक संग्रह बनाने और बनाने के लिए a arc.7z folder/एक सरलa arc.7z
पोलीमोन

21
unzip <filename>

तथा

zip -r archive.zip <filename> [filename]

आपको यह सुनिश्चित करने की आवश्यकता होगी कि ये कमांड आपके पैकेज मैनेजर के माध्यम से स्थापित हैं। यह कमांड लाइन पर किसी और चीज का उपयोग करने से ज्यादा कठिन नहीं है। यह निश्चित रूप से टार के साथ अभिलेखागार बनाने की तुलना में सरल है।


मुझे पता है कि यह एक पुराना धागा है लेकिन यह सबसे अच्छा जवाब है। 7z या टार के बारे में बात नहीं करता है, इसका संक्षिप्त और सीधे बिंदु पर
काइल

4

बीएसडी टार भी कर सकते हैं

bsdtar acf bravo.zip alfa.jpg

या:

bsdtar xf bravo.zip

tarजीएनयू tarऔर अन्य tarएस की तुलना में बीएसडी को कुछ अतिरिक्त संपीड़न प्रारूपों का समर्थन करने का लाभ है । सबसे बड़ा लाभ, शायद, यह है कि यह एक समान tarसिंटैक्स का उपयोग करते समय ऐसा करता है । आप निश्चित रूप से उपयोग कर सकते हैं 7z, unrar, unzipकमांडलाइन से, आदि, लेकिन वे एक का उपयोग विभिन्न वाक्य रचना।
njsg

3

सबसे मानक उत्तर है pax, जिसकी सिफारिश की गई है cpioऔर tar

इसके विपरीत cpioऔर POSIX tar, लेकिन GNU की तरह tar, paxदोनों संग्रह फ़ाइलों को संग्रहीत करने और संग्रह को संपीड़ित करने में सक्षम है। यह व्यवहार इससे अलग है zip, जो संग्रह में डालने से पहले प्रत्येक फ़ाइल को संपीड़ित करता है।


1
क्या paxजिप अभिलेखागार का समर्थन करता है ?
स्टारफिश

नहींं और यह paxया तो अभिलेखागार का समर्थन नहीं करता है !
लुटेरा

2

यह केवल निष्कर्षण को कवर करता है।

उसके लिए, मैंने उपयोग करना शुरू कर दिया है dtrx

इसका पूरा बिंदु जटिलता को दूर करना है। तो आप बस इसे किसी भी संग्रह में पास करते हैं और यह पता लगाते हैं कि इसके साथ क्या करने की आवश्यकता है। ज़िप, टार, gz ... उपयोग हमेशा एक ही है - dtrx archive.zip। यह कुछ सवाल पूछता है और आप कर रहे हैं।

dtrx, सबसे खजाने में उपलब्ध है तो आप कर सकते हैं apt| yumइसे स्थापित करो।


1

मैं अक्सर खुद को अपनी कार्य निर्देशिका में संशोधित फ़ाइलों को ज़िप करने की कोशिश करता हूं - या तो सभी संशोधित फ़ाइलों को किसी अन्य सैंडबॉक्स कार्य निर्देशिका में कॉपी करने के लिए या थोड़ी देर के लिए उन्हें संरक्षित करने के लिए क्योंकि मैं कुछ बदलावों को पूर्ववत करना चाहता हूं।

उस स्थिति में, मैं एक अस्थायी फ़ाइल में संशोधित फ़ाइलों की सूची की प्रतिलिपि बनाता हूं और zipविकल्प के साथ उपयोग करता हूं -@

मान लीजिए कि मैंने Foo.h, Bar.cc और TestBar.cc की फाइलें संशोधित की हैं।

मान लें कि मैं संशोधित-files.txt नामक एक फ़ाइल बनाता हूं जिसकी सामग्री हैं:

Foo.h
Bar.cc
TestBar.cc

मैं उन फ़ाइलों को ज़िप करने के लिए निम्नलिखित कमांड निष्पादित करता हूं:

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