सभी विभिन्न प्रकार के .tar अभिलेखागार के साथ क्या अंतर है?


16

क्या कोई मुझे बता सकता है कि इतने सारे अभिलेखागार के साथ क्या है, और वे कैसे भिन्न हैं?

वहाँ कम से कम पांच मैं के बारे में सोच सकते हैं कि है, .tar.tz, .tar.gz, .tar.bz2, .tar.lz,.tar.z

कौन से अनुप्रयोगों के लिए सबसे अच्छा है? यह केवल मूर्खतापूर्ण लगता है कि एक ही फ़ाइल के इतने सारे बदलाव करें लेकिन मुझे यकीन है कि इसका एक कारण है।

जवाबों:


18

.gz, .xz, .bz2, .7z, .lz, .zप्रत्यय स्पष्ट करना है कि फाइल कहा संपीड़न एल्गोरिथ्म के साथ संकुचित है उपयोग किया जाता है। इसका उपयोग केवल .tarफाइलों तक सीमित नहीं है , आप फ़ाइलों को भी देखेंगे जैसे initrd.gz(एक संपीड़ित प्रारंभिक रैमडिस्क) या manual.txt.gz(एक संपीड़ित पाठ दस्तावेज़ के लिए)। आप यह भी देख सकते हैं file.tgzकि यह एक गज़िप-संकुचित टारबॉल (जैसे file.tar.gz) को भी दर्शाता है ।

फ़ाइल एक्सटेंशन एक कन्वेंशन है, यह जरूरी नहीं कि फाइल कंटेंट का वर्णन करे। यह देखने के लिए कि आप किस प्रकार की फ़ाइल संभाल रहे हैं, fileकमांड का उपयोग करें । उदाहरण:

$ file data.tar.gz
data.tar.gz: gzip compressed data, from Unix
$ gunzip -c data.tar.gz | file -
/dev/stdin: POSIX tar archive (GNU)

मेरे अनुभव में, gzip- संपीड़ित फ़ाइलें ( .gz) सबसे आम हैं। यह संपीड़ित और विघटित करने में तेज है, हालांकि अन्य एल्गोरिदम हैं जो बेहतर संपीड़न अनुपात उत्पन्न करते हैं।


8

@Lekensteyn उत्तर के अलावा, मैं यह जोड़ना चाहूंगा कि यह व्यवहार Do एक चीज़ पर आधारित है और इसे अच्छी तरह से दर्शन करें - tarप्रोग्राम जानता है कि एक ही स्ट्रीम में ( .tarएक्सटेंशन के साथ ) एक से अधिक फ़ाइलों को कैसे रखा जाए , gzipकैसे संपीड़ित करें एकल फ़ाइल ( .gzएक्सटेंशन जोड़ने ) *। उन टूल को मिलाकर आप एक कमांड बना सकते हैं जो कई फाइलों को एक ही .tag.gzफाइल में कम्प्रेस करता है ।

यह दृष्टिकोण बहुत लचीला है - आप सभी प्रकार की चीजों को करने के लिए कुछ मानक यूनिक्स कमांड को जोड़ सकते हैं। उदाहरण के लिए, यदि आप फ़ाइलों को संपीड़ित करने के लिए एक बेहतर प्रोग्राम लिखते हैं, तो आपको फ़ाइलों tarको बनाने में सक्षम करने के लिए इसे संशोधित करने की आवश्यकता नहीं है .tar.mymegazip- इसके बजाय, आप बस tarअपने कंप्रेसर में आउटपुट करते हैं।

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

इसकी तुलना zipकमांड से करें, जो यूनिक्स में उत्पन्न नहीं हुई थी - इसमें पूरी निर्देशिकाओं को संपीड़ित करने, फ़ाइलों को एन्क्रिप्ट करने, संग्रह को छोटे ज़िपफाइल्स में विभाजित करने आदि के लिए अंतर्निहित टूल हैं।


(फुटनोट) - हाँ, tarस्वयं का उपयोग कर -zऔर प्राप्त करने के लिए gzip या bzip फ़ाइलों में सक्षम है-j स्विच , उन्हें सुविधा के लिए जोड़ा गया था, और जीएनयू टार वास्तव में स्पैनिंग gzipया bzip2एक नई प्रक्रिया के रूप में है।


उदाहरण: कमांड tar c dir/ | gzip > dir.tar.gzऔर tar czf dir.tar.gz dir/कमांड एक ही काम करते हैं। एक उदाहरण जहां tarSSH और के साथ संयुक्त है tar(फिर से): tar cz Documents/ | ssh user@host 'tar xz(rsync बराबर होगा: rsync -a Documents user@host:)
Lekensteyn
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.