जवाबों:
TAR कई फ़ाइलों में से एक एकल संग्रहीत फ़ाइल बनाता है, लेकिन उन्हें संपीड़ित नहीं करता है।
एक टार फ़ाइल एक या एक से अधिक फ़ाइलों का संयोजन है। प्रत्येक फ़ाइल 512-बाइट हैडर रिकॉर्ड से पहले है। फ़ाइल डेटा को अनलेडेड लिखा गया है, सिवाय इसके कि इसकी लंबाई कई गुणा 512 बाइट्स तक हो और अतिरिक्त स्थान शून्य भरा हो। एक पुरालेख का अंत कम से कम दो लगातार शून्य-भरे रिकॉर्ड द्वारा चिह्नित किया गया है।
GZIP एक एकल फ़ाइल को किसी अन्य एकल फ़ाइल में संपीड़ित करता है, लेकिन संग्रह नहीं बनाता है।
... हालाँकि इसका फ़ाइल प्रारूप भी कई ऐसी धाराओं को समाप्त करने की अनुमति देता है (ज़िप की गई फ़ाइलों को केवल सम्मिलित रूप से सम्मिलित किया जाता है जैसे कि वे मूल रूप से एक फ़ाइल थीं), gzip का उपयोग आम तौर पर केवल एकल फ़ाइलों को संपीड़ित करने के लिए किया जाता है। [४] संपीड़ित अभिलेखागार आमतौर पर एकल टार संग्रह में फ़ाइलों के संग्रह को इकट्ठा करके बनाया जाता है, और फिर उस संग्रह को gzip के साथ संपीड़ित किया जाता है।
tar -xzvf tarball.tar.gz single/file.txt
। पर्दे के पीछे इसे कुछ अतिरिक्त काम करने की ज़रूरत होती है, लेकिन दिखावे के लिए यह एक एकल फ़ाइल निकालता है।
.tar.*
संपीड़ित संग्रह हमेशा "ठोस" होता है, अर्थात। एक एकल संपीड़ित धारा के होते हैं। .zip
दूसरी ओर एक संग्रह बिल्कुल ठोस नहीं है, प्रत्येक फ़ाइल के लिए संपीड़न एल्गोरिथ्म नए सिरे से शुरू किया गया है। यह यादृच्छिक अभिगम को गति देने के लिए संपीड़न दक्षता का त्याग करता है। .7z
अभिलेख ठोस, गैर-ठोस या ठोस ब्लॉक हो सकते हैं।
Gzip / Bzip2 स्ट्रीम कम्प्रेसर हैं। वे डेटा की एक धारा को कुछ छोटे में संकुचित करते हैं। उनका उपयोग व्यक्तिगत फाइलों पर किया जा सकता है, लेकिन फाइलों के समूहों पर नहीं।
दूसरी ओर टार में पथों, अनुमतियों और स्वामित्व की जानकारी के साथ फ़ाइलों की एक सूची को चालू करने की क्षमता है, एक एकल सतत स्ट्रीम में - और इसके विपरीत।
इसीलिए, फ़ाइलों को संग्रहीत करने के लिए (और अगर किसी को संपीड़न की आवश्यकता है), तो एक आमतौर पर टार + कुछ संपीड़न विधि का उपयोग करता है।
टार एक और केवल एक ही चीज़ को अच्छी तरह से करने का प्रभारी है: (अन) एक संग्रह फ़ाइल में (बाहर) संग्रह करना। किस? एक और केवल एक चीज की: फाइलों का एक सेट ।
Gzip एक और केवल एक ही चीज़ को अच्छी तरह से करने का प्रभारी है: (संयुक्त राष्ट्र) संपीड़ित करना। किस? केवल एक चीज और एक चीज: किसी भी प्रकार की एक फ़ाइल ... और जिसमें टार के साथ बनाई गई फ़ाइल भी शामिल है।
यह पाइपलाइनिंग, अंतर्निहित "पाइप और फिल्टर" वास्तुकला के यूनिक्स दर्शन पर वापस जाता है; एक फ़ाइल के रूप में सब कुछ का इलाज और "एक-चीज़-एक-एक-चीज़-केवल-और-यह-अच्छी तरह से" का ध्वनि वास्तुशिल्प लक्ष्य (जिसके परिणामस्वरूप बहुत ही सुरुचिपूर्ण और सरल प्लग-एन-प्ले का प्रकार होता है ।)
इसकी सादगी में, यह प्रकृति में लगभग बीजगणितीय है (सिस्टम डिज़ाइन में एक विषम लक्ष्य)। और यह कोई आसान उपलब्धि नहीं है।
कई मायनों में (और इसकी खामियों के बिना नहीं), यह रचनाशीलता, प्रतिरूपकता, ढीले युग्मन और उच्च सामंजस्य में लगभग एक शिखर है। यदि आप इन चार को समझते हैं (और मेरा मतलब वास्तव में समझते हैं ), तो आप समझते हैं, यह स्पष्ट होगा कि टार और गज़िप जोड़े में क्यों काम करते हैं।
सबसे पहले, TAR को फ़ाइल अभिलेखागार बनाने के लिए नहीं बनाया गया था । यह टेप ARCHiver है । टेप से / से आर्काइव में लिखना या लोड करना काम है।
-F विकल्प के रूप में "आभासी टेप", तो किसी अन्य प्रोग्राम द्वारा संकुचित किया जा सकता है जो एक फ़ाइल का उपयोग करता है। वास्तव में, इस तरह के संपीड़न वास्तविक दुनिया के टेपड्राइव पर भी होते हैं।
बेशक, इसे अच्छी तरह से करने के लिए एक कार्यक्रम का उपयोग करने का दर्शन भी इस मामले में मायने रखता है, लेकिन किसी को याद हो सकता है कि टीएआर अभिलेखागार को सामग्री + सामग्री की निर्देशिका के बजाय एक धारा के रूप में संरचित क्यों किया जाता है।
परंपरागत रूप से, यूनिक्स सिस्टम ने यूनिक्स दर्शन के अनुसार एक कार्य करने के लिए एक प्रोग्राम का उपयोग किया : tar
केवल एक फाइल में एक से अधिक फ़ाइलों को पैकेज करने का एक साधन था, मूल रूप से टेप बैकअप के लिए (इसलिए tar
, टी एप ए आर चाइव)। tar
संपीड़न प्रदान नहीं करता है; परिणामी असम्पीडित संग्रह आमतौर पर कुछ अन्य प्रोग्राम जैसे , या gzip
, के साथ संपीड़ित होता है । पुराने दिनों में, वे ऐसा करने के लिए कमांड का उपयोग करेंगे ; नए संपीड़न एल्गोरिदम इससे कहीं अधिक प्रभावी हैं।bzip2
xz
compress
यूनिक्स दर्शन द्वारा निर्धारित अत्यधिक संशोधित दृष्टिकोण का अर्थ है कि प्रत्येक कार्यक्रम को व्यक्तिगत रूप से उपयुक्त के रूप में उपयोग किया जा सकता है, या अधिक जटिल कार्यों को करने के लिए संयुक्त किया जा सकता है, जिसमें संकुचित अभिलेखागार का निर्माण यहां वर्णित है। इन प्रकार के कार्यों के लिए, व्यक्तिगत टूल को आवश्यकतानुसार स्वैप करना आसान बनाता है; आप केवल tar
उपयोगिता को बदलने के लिए, बिना एक अलग संपीड़न एल्गोरिदम का उपयोग करने के लिए संपीड़न प्रोग्राम को बदल देंगे ।
यह मॉड्यूलर दृष्टिकोण इसके नुकसान के बिना नहीं है। जैसा कि अन्य उत्तरों के लिए टिप्पणियों में उल्लेख किया गया है, जैसे एक समर्पित संकुचित संग्रह प्रारूप .zip
व्यक्तिगत फ़ाइलों के निष्कर्षण को संभालने में बेहतर है; संग्रह के अंत के पास फ़ाइलों को निकालने के लिए संपीड़ित टारबॉल को लगभग पूरी तरह से विघटित करने की आवश्यकता होती है, जबकि .zip
अभिलेखागार अपनी सामग्री के लिए यादृच्छिक उपयोग की अनुमति देते हैं। (कुछ नए प्रारूप, जैसे .7z
, ठोस और गैर-ठोस अभिलेखागार का समर्थन करते हैं, साथ ही बड़े अभिलेखागार में अलग-अलग आकार के ठोस ब्लॉक।) tar
एक अलग संपीड़न उपयोगिता के साथ संयोजन के निरंतर उपयोग परंपरा और संगतता का मामला है; भी, .7z
और .zip
अनुमति के रूप में यूनिक्स फाइल सिस्टम मेटाडेटा का समर्थन नहीं करते।