लिनक्स / यूनिक्स पर, .tar.gz बनाम .zip मामला है?


69

क्रॉस-प्लेटफ़ॉर्म प्रोग्राम कभी-कभी यूनिक्स संस्करण के लिए .tar.gz और विंडोज संस्करण के लिए .zip के रूप में वितरित किए जाते हैं। यह समझ में आता है जब प्रत्येक की सामग्री अलग होनी चाहिए।

यदि, हालांकि, सामग्री समान होने जा रही है, तो यह केवल एक डाउनलोड करने के लिए सरल होगा। Windows पसंद करता है। ज़िप क्योंकि यह प्रारूप है यह बॉक्स से बाहर संभाल सकता है। क्या यह यूनिक्स पर मायने रखता है? यही है, मैंने आज Ubuntu लिनक्स पर एक फ़ाइल को अनज़िप करने की कोशिश की, और यह ठीक काम किया; वहाँ किसी भी मौजूदा यूनिक्स की तरह ऑपरेटिंग सिस्टम पर इस के साथ कोई समस्या है, या यह सिर्फ बोर्ड भर में एक .zip फ़ाइल प्रदान करने के लिए ठीक है?

जवाबों:


28

Necromancing।
हाँ, यह मायने रखता है।
दरअसल, यह निर्भर करता है।

tar.gz

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

ज़िप

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

क्योंकि ज़िप व्यक्तिगत रूप से फ़ाइलों को संपीड़ित करता है, एक ज़िप-संग्रह में सबसे बड़ा आकार होगा (विशेषकर कई छोटी फ़ाइलों के साथ - लगता है कि कॉन्फ़िगर)।

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


10
यूनिक्स की तरह सिस्टम (सूचना-ज़िप) पर ज़िप के मानक डिस्ट्रो भी यूनिक्स फ़ाइल विशेषताओं को संग्रहीत करता है।
एरिक एरोनिटी

35

टार gz लिनक्स / यूनिक्स के लिए बेहतर है क्योंकि यह अनुमति को बरकरार रखता है, जैसे स्क्रिप्ट पर "निष्पादन योग्य"।


8
OS X की पुरालेख उपयोगिता और ज़िप / अनज़िप अनुमतियाँ संरक्षित करते हैं, लेकिन ऐसी अन्य उपयोगिताएँ हो सकती हैं जो नहीं हैं।
लारी

4
मानक ज़िप / अनज़िप टूल (जानकारी-ज़िप) लिनक्स पर अनुमतियाँ और खिड़कियों पर टाइमस्टैम्प को बनाए रखते हैं। देखें: en.wikipedia.org/wiki/Info-ZIP विशिष्ट क्षमताओं के लिए ... जो वांछनीय यादृच्छिक अभिगम और संपादन योग्य संग्रह गुणों को बनाए रखते हुए अनुमतियों के मुद्दों और फ़ाइल आकार सीमाओं को पार करता है।
एरिक एरोनिटी

33

इन दिनों सबसे लोकप्रिय लिनक्स डिस्ट्रोस zipअनुकूलता से सुसज्जित डिफ़ॉल्ट रूप से हैं । लेकिन जैसा कि nc3b द्वारा कहा गया है, tarऔर gzipलिनक्स / यूनिक्स सिस्टम पर अधिक सामान्य हैं। यदि आपको इन प्रणालियों पर 95% संगतता की आवश्यकता है, तो उपयोग करने पर विचार करें tarऔर gzip। यदि आपको केवल 85% की आवश्यकता है, zipतो ठीक करेंगे।


2
ठीक है, 95% 85% से बेहतर है :-) एक बहुत ही मामूली सवाल है, क्या यह बिल्कुल मायने रखता है अगर फ़ाइल एक्सटेंशन .tz के बजाय .tz है?
रिवालेस

8
एक्सटेंशन बिल्कुल भी मायने नहीं रखता है, यह सिर्फ उपयोगकर्ताओं और कार्यक्रमों के संदर्भ के लिए उपयोग किया जाता है। यदि एक्सटेंशन .XXX है और आप जानते हैं कि यह .tar है, तो भी आप इसे अनटार करने के लिए टार का उपयोग कर सकते हैं। .tgz और .tar.gz वास्तव में एक ही एक्सटेंशन हैं और इन एक्सटेंशन वाली फाइलें समान होंगी।
ब्लडफिलिया

2
दूसरी ओर, विंडोज पर 100% संगतता के लिए आपको कैब का उपयोग करना होगा।
किनोकिजुफ

3
tar यूआईडी, जीआईडी ​​और अनुमतियों को स्टोर करेगा, जैसे कि यूनिक्स सिस्टम पर + x। ज़िप संग्रह, विंडोज़ सिस्टम पर आसानी से, छिपा हुआ और सिस्टम संग्रहीत करता है।
एंड्रयू डी एंड्रेड

1
@ आप केवल हमेशा उपयोग कर सकते हैं gunzip --suffix .zip npm-debug.log.zipयाgunzip -c < npm-debug.log.zip > npm-debug.log
Iwan Aucamp

19

टार / गज़िप एक बहुत ही भद्दा प्रारूप है क्योंकि संग्रह को यादृच्छिक रूप से एक्सेस नहीं किया जा सकता है, अद्यतन, सत्यापित या यहां तक ​​कि संलग्न नहीं किया जा सकता है ... पूरे संग्रह को विघटित किए बिना।

उस संबंध में ज़िप बहुत बेहतर है .... आप जल्दी से एक ज़िप फ़ाइल की सामग्री प्राप्त कर सकते हैं, पहले भाग को पुनः शामिल किए बिना इसे संलग्न करें, आदि।

ज़िप की कुछ आकार सीमाएँ हैं ... "ज़िप" के संस्करण के आधार पर जो आप उपयोग करते हैं ... और ये एक समस्या हो सकती है। लेकिन मानक जानकारी ज़िप उपकरण है कि सबसे linux तरह os'es के साथ आता है कोई आकार सीमाएँ हैं और फ़ाइल अनुमतियाँ ठीक रखता है।

देखें: क्षमताओं के लिए https://en.wikipedia.org/wiki/Info-ZIP


आप किस तरह की सीमाओं की बात कर रहे हैं?
पचेरियर

संपादित किया और एक लिंक प्रदान किया
एरिक एरोनिटी

9

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

इसके अलावा gzip से अधिक संपीड़न है ज़िप , तो फ़ाइल छोटा होगा।


1
मैं यह नहीं कहूंगा कि जिप जिप की तुलना में बेहतर है। दोनों एक ही DEFLATE एल्गोरिथम का उपयोग करते हैं, और मैंने जो भी तुलना की है, वह फ़ाइल आकार में समान परिणाम देता है।
ग्रैविटी

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

3

हाँ, यह मायने रखता है। टार एक अभिलेखागार है। और tar.gz में, हम उस संग्रह को संपीड़ित करते हैं।

जिप एक अभिलेखागार और कंप्रेसर दोनों है।

यदि आप मेरे अनुभव से संपीड़न की तुलना करते हैं, तो जिप ज़िप की तुलना में बहुत बेहतर है।

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


Gzipped फ़ाइलों का संग्रह नहीं बल्कि संग्रहीत फ़ाइलों का gzip। इसलिए आपको पूरा पुरालेख निकालना होगा।
m93a

2

निर्णय मूल रूप से इन पर आता है:

  • फ़ाइलों को निष्पादित करने की अनुमति के रूप में GZIP यूनिक्स फ़ाइल अनुमतियाँ रखता है ।

  • दूसरी ओर जिप विंडोज में बॉक्स से बाहर काम करता है


1

tarऔर gzip* nix-es की तुलना में बहुत अधिक सामान्य हैं unzip। उदाहरण के लिए, इस समय मेरे आर्क -2009.08 पर कोई नहीं है unzip


6
लेकिन bsdtar(का एक हिस्सा libarchive) है, जो ज़िप को संभालता है।
grawity

उफ़: "> उस बारे में पता नहीं चला। धन्यवाद! :-)
nc3b
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.