मैं कमांड लाइन से ज़िप अभिलेखागार कैसे बना और निकाल सकता हूँ?
मैं कमांड लाइन से ज़िप अभिलेखागार कैसे बना और निकाल सकता हूँ?
जवाबों:
आम तौर पर एक tar
असम्पीडित संग्रह बनाने के लिए और या तो gzip
या bzip2
उस संग्रह को संपीड़ित करने के लिए उपयोग करता है । संबंधित gunzip
और bunzip2
आदेशों का उपयोग संग्रह को अनकम्प्रेस्ड करने के लिए किया जा सकता है, या आप केवल tar
कमांड पर झंडे का उपयोग कर सकते हैं ।
यदि आप विशेष रूप से जिप फाइल फॉर्मेट का जिक्र कर रहे हैं , तो आप बस zip
और unzip
कमांड का उपयोग कर सकते हैं ।
सिकुड़ जाना:
zip squash.zip file1 file2 file3
या एक निर्देशिका ज़िप करने के लिए
zip -r squash.zip dir1
अनकम्प्रेस्ड करने के लिए:
unzip squash.zip
यह आपकी वर्तमान कार्यशील निर्देशिका में इसे अनज़िप करता है।
zip -r9 archive.zip files...
वाक्यविन्यास (-r = पुनरावर्ती -9 = अधिकतम संपीड़न) का उपयोग करता हूं ।
zip
.ZIP अभिलेखागार के कई अलग-अलग स्वाद बना सकते हैं, साथ ही कई अलग-अलग कंप्रेशर्स का उपयोग कर सकते हैं। दूसरी ओर, इसी तरह के कई अन्य संपीड़न उपकरण हैं: 7-जिप, गज़िप, बज़िप 2, रज़िप, आदि, जो विनिमेय नहीं हैं।
cd dir1; zip -r ../squash.zip *
unzip -d myfolder squash.zip
एक अलग नई निर्देशिका ( myfolder
) में निकालने के लिए उपयोग करें , जो कि नाराज हो सकती है अगर ज़िप फ़ाइल में अपने शीर्ष स्तर में कई फाइलें और निर्देशिकाएं हों। यह mimics बताता है कि अधिकांश UI अनज़िप टूल कैसे काम करते हैं।
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 संपीड़न के लिए सेक करने के लिए उपयोग करें ।
खैर, जब विभिन्न ऑपरेटिंग सिस्टम के लिए फाइल वितरित करने की बात आती है, तो मैं 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 पर संपूर्ण फाइल सिस्टम जानकारी के साथ अभिलेखागार नहीं बनाता है, इसलिए आपको tar
7z का उपयोग करने से पहले उपयोग करने की आवश्यकता होगी (लेकिन चूंकि 7z tar
फ़ाइल के बारे में अन्य जानकारी संग्रहीत करता है, मैं xz
इसका उपयोग करने की सलाह दूंगा , क्योंकि यह इसके लिए डिज़ाइन किया गया है):
tar cf - file1 file2 dir | 7za z -si archive.tar.7z
atool
, यह एक अच्छा सा उपकरण है जो कई अलग-अलग कम्प्रेसर का उपयोग करके अधिक आरामदायक बनाता है। बाँधें कि a
एक संग्रह बनाने और बनाने के लिए a arc.7z folder/
एक सरलa arc.7z
unzip <filename>
तथा
zip -r archive.zip <filename> [filename]
आपको यह सुनिश्चित करने की आवश्यकता होगी कि ये कमांड आपके पैकेज मैनेजर के माध्यम से स्थापित हैं। यह कमांड लाइन पर किसी और चीज का उपयोग करने से ज्यादा कठिन नहीं है। यह निश्चित रूप से टार के साथ अभिलेखागार बनाने की तुलना में सरल है।
बीएसडी टार भी कर सकते हैं
bsdtar acf bravo.zip alfa.jpg
या:
bsdtar xf bravo.zip
tar
जीएनयू tar
और अन्य tar
एस की तुलना में बीएसडी को कुछ अतिरिक्त संपीड़न प्रारूपों का समर्थन करने का लाभ है । सबसे बड़ा लाभ, शायद, यह है कि यह एक समान tar
सिंटैक्स का उपयोग करते समय ऐसा करता है । आप निश्चित रूप से उपयोग कर सकते हैं 7z
, unrar
, unzip
कमांडलाइन से, आदि, लेकिन वे एक का उपयोग विभिन्न वाक्य रचना।
सबसे मानक उत्तर है pax
, जिसकी सिफारिश की गई है cpio
और tar
।
इसके विपरीत cpio
और POSIX tar
, लेकिन GNU की तरह tar
, pax
दोनों संग्रह फ़ाइलों को संग्रहीत करने और संग्रह को संपीड़ित करने में सक्षम है। यह व्यवहार इससे अलग है zip
, जो संग्रह में डालने से पहले प्रत्येक फ़ाइल को संपीड़ित करता है।
pax
जिप अभिलेखागार का समर्थन करता है ?
pax
या तो अभिलेखागार का समर्थन नहीं करता है !
यह केवल निष्कर्षण को कवर करता है।
उसके लिए, मैंने उपयोग करना शुरू कर दिया है dtrx
।
इसका पूरा बिंदु जटिलता को दूर करना है। तो आप बस इसे किसी भी संग्रह में पास करते हैं और यह पता लगाते हैं कि इसके साथ क्या करने की आवश्यकता है। ज़िप, टार, gz ... उपयोग हमेशा एक ही है - dtrx archive.zip
। यह कुछ सवाल पूछता है और आप कर रहे हैं।
dtrx
, सबसे खजाने में उपलब्ध है तो आप कर सकते हैं apt
| yum
इसे स्थापित करो।
मैं अक्सर खुद को अपनी कार्य निर्देशिका में संशोधित फ़ाइलों को ज़िप करने की कोशिश करता हूं - या तो सभी संशोधित फ़ाइलों को किसी अन्य सैंडबॉक्स कार्य निर्देशिका में कॉपी करने के लिए या थोड़ी देर के लिए उन्हें संरक्षित करने के लिए क्योंकि मैं कुछ बदलावों को पूर्ववत करना चाहता हूं।
उस स्थिति में, मैं एक अस्थायी फ़ाइल में संशोधित फ़ाइलों की सूची की प्रतिलिपि बनाता हूं और zip
विकल्प के साथ उपयोग करता हूं -@
।
मान लीजिए कि मैंने Foo.h, Bar.cc और TestBar.cc की फाइलें संशोधित की हैं।
मान लें कि मैं संशोधित-files.txt नामक एक फ़ाइल बनाता हूं जिसकी सामग्री हैं:
Foo.h
Bar.cc
TestBar.cc
मैं उन फ़ाइलों को ज़िप करने के लिए निम्नलिखित कमांड निष्पादित करता हूं:
cat modified-files.txt | zip modified-files.zip -@