कौन सा अधिक कुशल है - टार या ज़िप संपीड़न? टार और ज़िप में क्या अंतर है?


68

मैं लिनक्स वातावरण में काम कर रहा हूं और टार और जिप कमांड के बारे में जानना चाहता हूं।

कौन सा अधिक कुशल है - टार या ज़िप? मुझे टार और जिप कमांड के बीच के अंतर को भी जानना होगा। क्या कोई उन्हें मुझे समझा सकता है?

जवाबों:


77

tarकेवल कई फ़ाइलों में से एक फ़ाइल बनाता है, यह संपीड़न तब तक नहीं करता है जब तक कि एक संपीड़न प्रोग्राम जैसे ( gzipया bzip2जिसे आप क्रमशः या विकल्पों tarका उपयोग करके भीतर से कॉल कर सकते हैं)। एक कार्यक्रम में संग्रह और संपीड़न दोनों को जोड़ती है।-z-jzip


60

टार

  • मान लें कि आप एक छोर से दूसरे छोर तक पढ़ रहे हैं - "टेप आर्काइव"। (कमांड की उम्र से पता चलता है ...)
  • संपीड़न नहीं करता है, लेकिन आप इसे gzip और bzip2 के माध्यम से पाइप करके पूरे परिणामी स्ट्रीम को संपीड़ित कर सकते हैं (आंतरिक रूप से -z या -j के साथ किया जाता है)
  • स्टोर यूनिक्स फ़ाइल विशेषताएँ : यूआईडी, जीआईडी, अनुमतियाँ (सबसे विशेष रूप से निष्पादन योग्य)। डिफ़ॉल्ट आपके वितरण पर निर्भर हो सकता है, और विकल्पों के साथ टॉगल किया जा सकता है।

ज़िप

  • स्टोर MSDOS विशेषताएँ । (पुरालेख, Readonly, हिडन, सिस्टम)
  • प्रत्येक फ़ाइल को संपीड़ित करता है, फिर उन्हें एक संग्रह में जोड़ता है
  • फ़ाइल के अंत में एक फ़ाइल तालिका शामिल है
  • और पूर्व दो के परिणामस्वरूप, आपको आवश्यक फ़ाइल के बारे में केवल सटीक भागों को पढ़ने की अनुमति मिलती है।

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

(कम से कम यह एक दशक पहले बिल्कुल सही था।)


22

तार जिप की तुलना में बहुत अधिक मेटाडेटा को संरक्षित करता है, मेरी तुलना देखें (यह थोड़ा पुराना है):

यहाँ छवि विवरण दर्ज करें

(ज़ूम करने के लिए क्लिक करें)

टैर 65% टेस्ट पास करता है, जहाँ ज़िप केवल 17% पास करता है। मैंने टेस्ट सूट को बीएसडी लाइसेंस के तहत जीथब पर उपलब्ध कराया है ताकि आप मैक होने पर खुद के लिए कोशिश कर सकें। लिनक्स के लिए, मुझे यकीन नहीं है कि कोई मेटाडेटा है, तो ये परीक्षण प्रासंगिक नहीं हो सकते हैं।


दिलचस्प! इसके लिए +1। लेकिन फिर, यह एक बहुत बड़ा कार्यक्रम था। क्या आपने इसे अन्य उद्देश्य के लिए लिखा था? बस उत्सुक।
CppLearner

मैंने एक फ़ाइल प्रबंधक के लिए परीक्षण लिखा था कि मैं कुछ साल पहले काम कर रहा था। हालांकि इसे कभी जारी नहीं किया।
नीनी

1
लिनक्स में मेटाडेटा भी है, इसलिए इसके लिए काम करना चाहिए।
ज़िट्यू डे

14

दक्षता को विभिन्न तरीकों से मापा जा सकता है:

  1. प्रक्रिया में कितना समय लगता है?
  2. परिणामी फाइलें कितनी बड़ी हैं?

अन्य प्रश्न भी हैं, जैसे "परिणामी अभिलेखागार में हेरफेर करने के लिए उपकरण कितने सामान्य हैं?"

इसलिए, उदाहरण के लिए, की bzip2तुलना में छोटी फ़ाइलें बनाता है gzip, लेकिन इसमें काफी समय लग सकता है। इसके अलावा, मेरे अनुभव gzipमें यूनिक्स जैसी प्रणालियों पर सार्वभौमिक है, लेकिन bzip2अभी भी नहीं है (हालांकि यह बहुत आम है और आमतौर पर प्राप्त करना आसान है)।


3
7zip ( 7-zip.org ) CPU समय की कीमत पर उत्कृष्ट संपीड़न प्राप्त करने के लिए एक और अच्छा विकल्प है। Bzip2 की तुलना में कम सामान्य (कहीं भी डिफ़ॉल्ट रूप से स्थापित नहीं है जो मुझे पता है) लेकिन अधिकांश स्थानों पर स्थापित करना आसान है (यह अधिकांश लिनक्स वितरण के लिए मानक रिपॉजिटरी में है और विंडोज के लिए एक साधारण इंस्टॉलर पैकेज है। जैसे कि tar + gzip) कैर्री करता है। इनपुट फाइलों में कंप्रेशन विंडो कई छोटी फाइलों को शामिल करने पर भी जिप से अधिक बचत होती है।
डेविड स्पिल्ट

3
दक्षता को इस बात से भी मापा जा सकता है कि यह डेटा को कितनी अच्छी तरह से संरक्षित करता है, इस प्रश्न के बारे में मेरा जवाब देखें। डेटा को संरक्षित करने में टैर जिप की तुलना में बहुत बेहतर है।
neoneye

1
एक और माप तख्तापलट UNIX के बाहर संगतता हो। विंडोज ज़िप के साथ ठीक है (विंडोज में बनाया गया है), आमतौर पर शेयरवेयर के साथ tar.gz को आसानी से प्रोसेस कर सकता है, लेकिन bzip2 को ढूंढना दुर्लभ है। दुर्भाग्य से मूल प्रश्न में इन मानदंडों का उल्लेख नहीं था, इसलिए यह नहीं देख सकते कि क्या वे प्रासंगिक हैं।
रिच होमोलका

1
मैंने एक बार कुछ सामान्य कंप्रेशर्स के लिए आवश्यक समय बनाम संपीड़न अनुपात की गहन समीक्षा की थी, और यह इस बात पर निर्भर करता है कि आप समय बनाम स्थान का महत्व कैसे देते हैं: blog.grandtrunk.net/2004/07/practical-compressor-test
Wim

9

जैसा कि कहा गया है, टार ही संपीड़ित नहीं करता है। यदि आप टार सेक को जोड़ते हैं (जैसे कि .tar.gz या .tar.bz2 पाने के लिए), तो आप एक ही बार में पूरी टार फाइल को कंप्रेस कर रहे हैं। इसके विपरीत, ज़िप प्रत्येक फ़ाइल को व्यक्तिगत रूप से संपीड़ित करता है।

दक्षता कार्यभार पर निर्भर करती है। विशेष रूप से, ज़िप आपको व्यक्तिगत फ़ाइलों को सीधे एक्सेस करने की अनुमति देता है। टार के साथ, आपको पहले अवांछित (संपीड़ित) फ़ाइलों के माध्यम से तलाश करना होगा। संपीड़न प्रदर्शन इस बात पर निर्भर करता है कि आप क्या कंप्रेस कर रहे हैं। tarके साथ bzip2अक्सर समान फ़ाइलों की एक बड़ी संख्या के लिए बेहतर होता है (जैसे एक स्रोत निर्देशिका)। zipयदि प्रत्येक फ़ाइल में बहुत भिन्न सामग्री हो तो बेहतर हो सकता है।


4
... दूसरी ओर, आपको सामग्री तक पहुंचने से पहले पूरी ज़िप फ़ाइल प्राप्त करनी होगी, क्योंकि अंत में टो को रखा गया है। इसके विपरीत, आप एक टार को अनटार कर सकते हैं जितनी तेजी से बाइट्स आते हैं ...
akira

6

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

BBS उपयोग के लिए ज़िप अभिलेखागार बनाए गए थे, जहाँ एक निर्देशिका की सामग्री को एक एकल (और संपीड़ित) फ़ाइल में बंडल करने में सक्षम होना महत्वपूर्ण था --- संभवतः हजारों एकल फ़ाइलों को डाउनलोड करने के बजाय। ज्यादातर वेब साइटें आज भी उन्हीं कारणों से अपने डाउनलोड बंडल करती हैं।

टार अभिलेखागार को टेप ड्राइव के लिए उपयोग किए जाने वाले बैकअप बंडल के लिए तैयार किया गया था, इसलिए अनुक्रमिक पहुंच के लिए । कोई केंद्रीय निर्देशिका नहीं है; इसके बजाय, संग्रह में नियमित अंतराल पर हेडर ब्लॉक होते हैं जो इंगित करते हैं कि कौन सी फाइलें अगले कुछ ब्लॉकों में अनुसरण करेंगी। टार अभिलेखागार एक झपट्टा में पढ़ा जा करने का इरादा कर रहे हैं; यदि केवल एक ही फ़ाइल निकाली जानी है, तो संग्रह को क्रमिक रूप से पढ़ा जाता है, शुरू से ही शुरू होता है जब तक कि अनुरोधित फ़ाइल नहीं मिल जाती है (जो कि बहुत अंत में भी हो सकती है)। उसके ऊपर संपीड़न लागू किया जाता है; विभिन्न संपीड़न प्रोग्राम हैं जो टार संग्रहों में लागू किए गए प्रत्येक ( compress, gzip,bzip2आदि) स्ट्रीम कंप्रेशर्स हैं और किसी भी मामले में संग्रह की अनुक्रमिक प्रकृति को नहीं बदलते हैं। सबसे खराब स्थिति में, आपको तब तक थोड़ा और ब्लॉक चाहिए जब तक आप निकालना शुरू नहीं कर सकते।

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

दोनों प्रारूपों में उनके लिए एक बहुत मजबूत बिंदु है, जो इस बात पर निर्भर करता है कि उनका उपयोग कहां और कैसे किया जाता है। चूंकि पाइपलाइन (और इस प्रकार डेटा को एक प्रक्रिया से दूसरी प्रक्रिया में स्ट्रीमिंग करने की धारणा) केवल यूनिक्स दुनिया में ही मौजूद हैं, टार अभिलेखागार का मुख्य रूप से अन्य सिस्टम पर खो गया है, यही वजह है कि ज़िप अभिलेखागार वहां बहुत अधिक लोकप्रिय हैं। लेकिन टार अभिलेखागार अधिक लचीले हैं, यही कारण है कि जब भी मेरे पास कोई विकल्प होता है तो मैं उन्हें पसंद करता हूं।


5

जैसा कि दूसरे ने पहले ही कहा था, टार सभी फाइलों का एक बड़ा "ब्लॉक" बनाता है जो कि जीज़िप या बज़िप 2 जैसी स्ट्रीम कॉम्प्रिसेसर के साथ कंप्रेस किया जा सकता है।

इसका नुकसान यह है कि आपको संग्रह के अंदर एक फ़ाइल तक पहुंचने के लिए पूरी फ़ाइल को विघटित करना होगा।

इसका लाभ यह है कि संपीड़ित अनुपात आमतौर पर अधिक होता है, खासकर जब संपीड़ित फाइलें बहुत समान होती हैं।

अन्य पैकर जैसे "रार" का एक ही प्रभाव होने के लिए "ब्लॉक मोड" (या समान) है।

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