क्यों नहीं निकाल सकते हैं। ज़िप फ़ाइलें? [बन्द है]


28

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


1
बस एक नोट, अभिलेखागार bsdtarनिकाल सकते हैं .zip: P
HalosGhost

12
आप का मतलब है, "मैं गाजर को काटने के लिए कैन-ओपनर का उपयोग क्यों नहीं कर सकता?" बात यह है कि यह फ़ाइल-स्वरूप की है, और फिर जो भी आपके द्वारा चुनी जाती है, उसे संपीड़ित करता है। zip एक पूरी तरह से अलग जानवर है। इतना ही आसान। यह "यूनिक्स तरीका" है, एक छोटा उपकरण है जो एक अंडे को अच्छी तरह से काम करता है, बजाय एक अंडे देने के, ऊन-असर वाला दूध-बोना जो आपकी सभी आवश्यकताओं को पूरा करेगा।
tink

मैंने इस प्रश्न को स्पष्ट करने के लिए अपने प्रश्न को थोड़ा संपादित किया, लेकिन मुझे लगता है कि मेरा प्रश्न स्पष्ट रूप से निहित है कि मुझे लगा कि ज़िप एक संपीड़न प्रारूप था और टार + संपीड़न के लिए प्रतिस्थापन उपकरण नहीं था। मैंने जो उत्तर चुना उसे मैं सही मान रहा था और यह दिखाया कि उत्तर राय आधारित नहीं था।
प्लूटो

आपके पास zipडिफ़ॉल्ट रूप से नहीं है क्योंकि इसकी लाइसेंसिंग GPL
venimus

जवाबों:


29

UNIX दर्शन के लिए छोटे उपकरण हैं। एक उपकरण बिल्कुल एक काम कर रहा है, लेकिन यह विशेष रूप से अच्छी तरह से है।

यह tarटूल बिना किसी कंप्रेशन के सिर्फ एक फाइल में कई फाइलों को मिला रहा है।

gzipउपकरण सिर्फ एक एकल फाइल को संपीड़ित कर रहा है।

यदि आप दोनों को चाहते हैं, तो आप दोनों टूल को एक .tar.gzफाइल में जोड़ देते हैं ।


zipउपकरण पूरी तरह से अलग बात है। यह फ़ाइलों का एक गुच्छा लेता है और उन्हें एक संपीड़ित फ़ाइल में जोड़ता है। पूरी तरह से अलग एल्गोरिदम के साथ।


यदि आप चाहते हैं कि एक उपकरण उन सभी पर शासन करे atool। यह केवल प्रारूप का पता लगाकर और सही टूल को कॉल करके विभिन्न स्वरूपों के पूरे समूह का समर्थन करेगा ।


वास्तव में दोनों के उद्देश्य को समझाने के बजाय आपको यह बताने के लिए धन्यवाद कि टार क्या करता है। मैंने जल्द ही एक विकिपीडिया लेख को देखा जो कि "आर्काइविंग," "संपीड़न," और दोनों के लिए तीन अलग-अलग तालिकाओं में सूचीबद्ध किए गए हैं। मुझे लगा कि मैं एक ऐसे उत्तर की प्रतीक्षा करूंगा जिसमें यह स्पष्ट रूप से समझाया गया हो।
प्लूटो

थोड़ा अचार होने के लिए, gzipसंपीड़न एल्गोरिथ्म उसी का उपयोग किया जाता है zip। अंतर यह है कि gzipकिसी भी बाइट स्ट्रीम को संपीड़ित करने के लिए होता है, जिसमें .tarफ़ाइल, जबकि zip, व्युत्पन्न और PKZIP से प्रेरित है, एक चरण में (और उस क्रम में) संपीड़ित करता है।
जो सेवेल

9

लंबी कहानी छोटी: टार GNU टूल जिप / अनज़िप के माध्यम से पाइप नहीं करता है क्योंकि कोई भी परवाह नहीं करता है।

लंबी कहानी, मूल आकार:

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

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

$ tar zxf damaged.tar.gz
gzip: damaged.tar.gz: unexpected end of file

तो, ऐसा नहीं है कि tarज़िप फ़ाइलों को अनकैप्ड न करें, बस इसके tarपास सही उपकरण के माध्यम से इसे पाइप करने की क्षमता नहीं है, क्योंकि कोई भी वास्तव में इसे लागू करने के लिए परेशान नहीं है, और ज़िप पहले ही टार फ़ाइल के फ़ाइल संग्रह फ़ंक्शन को पूरा करता है। प्रारूप का समर्थन करने के लिए टार के लिए कम कारण है।

अब, सभी में एक-एक उपकरण हैं जो आपके द्वारा उन पर फेंकने वाले सभी चीजों को संपीड़ित / अनसुना करते हैं, फिर से, आपको वास्तव में इसका समर्थन करने के लिए सही उपकरण होना चाहिए। यदि आपके पास नहीं है, तो उपकरण विफल हो जाएगा।


1
खैर, पाइप के माध्यम से सही उपकरण को लागू करने वाले किसी से परे, एक नहीं है: टार फाइलें केवल एक में कई फाइलें जोड़ती हैं। संपीड़न अलग है। तो फिल्टर टार पाइप को बस एक ही टार फाइल को संपीड़ित / विघटित करता है। जिप अलग तरीके से काम करता है; यह संपीड़ित और संयोजित करने के लिए एक एकीकृत उपकरण का उपयोग करता है (एक समान यूनिक्स प्रोग्राम है afio)।
derobert

मेरा सुझाव है कि मौजूद सभी कंप्रेशन में से कुछ का उल्लेख है। जैसे, गनोम है file-roller...
जुलाब

@derobert फ़ाइल-रोलर केवल ज़िप का समर्थन करता है यदि आपके पास अनज़िप / ज़िप / p7zip स्थापित है। अन्यथा टार की तरह ही बेकार है।
ब्रिअम जूल

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

@derobert बिल्कुल।
Braiam

3

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

जब आप zipकोई tarफ़ाइल निकालते हैं तो उसके भीतर कोई फ़ाइल नहीं होती है , बस आपकी सभी मूल फ़ाइलें। इसलिए tarइस प्रक्रिया में शामिल होने का कोई कारण नहीं है ।

आप फ़ाइलों का उपयोग करके gzipया bzip2स्वयं भी संपीड़ित कर सकते हैं जैसे आप zipफ़ाइलें बना सकते हैं (जिसमें कोई tarशामिल नहीं है)। जब आप इन फ़ाइलों को अनप्लग करते हैं, तो आप उपयोग करते हैं gunzipया bunzip2नहीं tar


1

जवाब के रूप में "कुछ चीजें बस हैं और हमें उन्हें स्वीकार करना चाहिए" मेरे साथ अच्छी तरह से नहीं बैठता है, मैंने बस कुछ खुदाई की (हमेशा कुछ नया सीखने के लिए अच्छा है यह नहीं है?)।

इसलिए ऐसा लग रहा है कि यह मुद्दा एक है कि उपकरण कहां गए और उनका उद्देश्य क्या था।

इसके बजाय कि मैंने क्या पाया और पानी को अनावश्यक रूप से गन्दा कर दिया (आपत्तिजनक पेशाब करना बंद कर दिया), इस लेख पर एक नज़र डालें: http://www.differencebetween.net/technology/difference-between-zip-and-gzip/

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

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