आँकड़ों और विज्ञापन के लिए कुकीज़
हम आँकड़ों और विज्ञापन के लिए कुकीज़ इस्तेमाल करते हैं, दोनों Google को जाती हैं। मना करने से आपको दिखने वाली किसी चीज़ में कोई फ़र्क़ नहीं पड़ता।निजता पेज पढ़ें
यहाँ आप TAR को GZ में बदलते हैं, मुफ़्त और बिना खाते के: फ़ाइल ऊपर छोड़िए और कुछ ही सेकंड में नतीजा डाउनलोड के लिए तैयार मिलेगा। फ़ाइल एन्क्रिप्टेड होकर हमारे सर्वर तक जाती है, वहाँ बदली जाती है और काम पूरा होते ही मिटा दी जाती है।
एक बार में 100 फ़ाइलें। फ़ॉर्मेट अलग-अलग हों तो भी चलेगा।
ये एक के बाद एक बदलती हैं और साथ में एक ZIP बनकर उतरती हैं।
TAR से GZ
सादी TAR कम मिलती हैं और पहचानी जगहों से आती हैं। docker save एक बनाता है। जिस बैकअप स्क्रिप्ट को बंडल करने को कहा गया, दबाने को नहीं, वह एक बनाती है। कुछ NAS और टेप वर्कफ़्लो भी ऐसा ही करते हैं। और लोग ग़लती से भी एक बना देते हैं — tar cf और tar czf में सिर्फ़ एक अक्षर का फ़र्क़ है।
नतीजा एक ऐसी आर्काइव है जो अंदर की हर चीज़ के जोड़ से थोड़ी ज़्यादा भारी होती है। धीमे कनेक्शन पर अपलोड, प्रति-गीगाबाइट चार्ज करने वाले बकेट, या ईमेल अटैचमेंट सीमा पर यह महँगा पड़ता है। यह वह इकलौता रीपैक है जहाँ जवाब लगभग हमेशा हाँ है।
TAR की संरचना 1979 की है और सुंदर तरीक़े से सादी है: फ़ाइल बताने वाला 512-बाइट हेडर, फिर अगली 512-बाइट सीमा तक padded फ़ाइल, फिर अगला हेडर, और आख़िर में दो ख़ाली ब्लॉक। कुछ भी दबाया या इंडेक्स नहीं किया जाता।
यह लागत छोटी फ़ाइलों पर दिखती है। एक बाइट की फ़ाइल TAR में 1,024 बाइट घेरती है — पूरा हेडर और पूरा डेटा ब्लॉक। दस हज़ार छोटी कॉन्फ़िग फ़ाइलें कई मेगाबाइट हेडर और padding ढोती हैं जिनमें कोई जानकारी नहीं। gzip शून्य की लंबी लड़ी को लगभग कुछ नहीं में बदल देता है।
Gzip 32 KB इतिहास खिड़की के साथ DEFLATE इस्तेमाल करता है, और यही नंबर इस पूरे बदलाव को तय करता है। किसी भी 32 KB हिस्से के भीतर यह दोहराए गए तार ढूँढ़कर उन्हें संदर्भ से बदल देता है, फिर बचे हुए को Huffman-कोड करता है।
जो छूट जाता है वह लंबी दूरी की दोहराव है। अगर एक ही लाइसेंस हेडर 40 MB की टारबॉल में बिखरी दो सौ फ़ाइलों में हो, gzip उसे दो सौ बार अलग-अलग दबाता है क्योंकि वह कभी दोनों को एक साथ नहीं देख सकता। यही अंतर XZ और 7Z को इस काम में आगे रखता है।
यह साफ़ कहना ज़रूरी है क्योंकि लोग उम्मीद रखते हैं कि मौजूदा फ़ाइल पर बस एक रैपर लग जाएगा। बदलाव आपकी अपलोड की गई TAR को खोलता है, फिर निकली सामग्री से एक नई TAR लिखता है और उसे gzip करता है। अंदर की फ़ाइलें बिट-दर-बिट वही हैं; उनके चारों ओर की tarball नई है।
इसका मतलब है कि मूल TAR के ख़िलाफ़ छपा कोई चेकसम यहाँ नहीं मिलेगा। अगर हैश मिलाना ज़रूरी है, अपनी मशीन पर gzip चलाइए, जो टारबॉल को बिना छुए रखता है।
gzip स्ट्रीम में मूल फ़ाइल के नाम के लिए एक हेडर फ़ील्ड है, इसीलिए Unix मशीन पर gunzip backup.gz backup.tar नाम की फ़ाइल दे सकता है, भले ही कमांड में ऐसा कुछ नहीं लिखा था।
इस पर ज़्यादा भरोसा मत कीजिए — बहुत सारे औज़ार उस फ़ील्ड में सामान्य नाम लिखते हैं और कई निकालते वक़्त उसे नज़रअंदाज़ करते हैं। आप जो एक्सटेंशन डाउनलोड को देते हैं वही असल में पढ़ा जाएगा, इसलिए इसे .gz नहीं, .tar.gz बनाइए।
gzip स्ट्रीम आगे से पीछे, बिना इंडेक्स के डिकोड होती है — जो सीमा लगती है वही इसकी सबसे बड़ी ताक़त है। इसका मतलब है curl https://… | tar xzf - एक ऐसा डाउनलोड खोल सकता है जो डिस्क पर उतरा ही नहीं।
अगर आपकी tarball किसी पाइप से गुज़रने वाली है, HTTP पर सर्व होनी है, या किसी छोटी चीज़ से खुलनी है, gzip समझौता नहीं, सही चुनाव है।
तीनों में दर्जा नहीं, वे एक ही वक्र पर अलग बिंदु हैं। gzip दबाने-खोलने में सबसे तेज़ और सबसे कम बचत देता है। XZ पाठ पर सबसे बड़ी बचत देता है, समय और याददाश्त की बड़ी क़ीमत पर। BZ2 बीच में बैठता है और legacy चिह्नित है।
फ़ैसला इस पर करें कि फ़ाइल आगे कहाँ जाएगी: बार-बार खोली जाने वाली, पाइप से गुज़रने वाली चीज़ के लिए gzip; सालों तक ठंडे भंडार में पड़ी चीज़ के लिए XZ।
आपके ब्राउज़र में नहीं। साइट के ज़्यादातर औज़ार आपके डिवाइस पर ही चलते हैं; आर्काइव रीपैकिंग अपवाद है, क्योंकि इसे 7-Zip और gzip जैसे असली प्रोग्राम चाहिए। फ़ाइल एन्क्रिप्टेड कनेक्शन से एक ऐसे कंटेनर तक जाती है जिसका कोई बाहरी इंटरनेट नहीं।
हर जॉब को याददाश्त-आधारित फ़ाइलसिस्टम पर एक स्क्रैच डायरेक्टरी मिलती है, जो जॉब ख़त्म होते ही मिटा दी जाती है। फ़्री सीमा 25 MB प्रति फ़ाइल है, और यह वह जोड़ा है जहाँ यह सीमा सबसे ज़्यादा काटती है — बिना-दबाव TAR में 25 MB असली सामग्री है।
tar xzf archive.tar.gz macOS, Linux और BSD पर दोनों परतें एक साथ खोल देता है, और आधुनिक Windows का tar भी यही करता है PowerShell से।
मूल हटाने से पहले लिस्टिंग मिलाइए: नतीजे पर tar tzf बनाम स्रोत पर tar tf, समान गिनती और समान पथ। ऊपरी स्तर सबसे पहले देखने लायक है — किसी डायरेक्टरी के भीतर से पैक की गई आर्काइव और उसके बाहर से पैक की गई में हर पथ पर एक अगली फ़ोल्डर का फ़र्क़ होता है।
| TAR | GZ | |
|---|---|---|
| पूरा नाम | TAR आर्काइव | Gzip आर्काइव |
| फ़ाइल एक्सटेंशन | .tar | .gz, .tgz |
| मीडिया टाइप | application/x-tar | application/gzip |
| कंप्रेशन | बिना कंप्रेशन | बिना नुक़सान — कुछ छोड़ा नहीं जाता |
| पहली बार प्रकाशित | 1979 | 1992 |
| विनिर्देश | POSIX.1-2001 ustar | RFC 1952 |
| लाइसेंस | खुला मानक | खुला मानक |
| आज की स्थिति | मौजूदा | मौजूदा |
| ब्राउज़र में खुलता है | कोई ब्राउज़र नहीं | कोई ब्राउज़र नहीं |
| इसकी जगह विचारणीय | ZIP | BZ2, XZ, ZIP |
कुछ नहीं खोता। TAR और GZ — दोनों अपनी सामग्री बिना नुक़सान सँभालते हैं: यह कन्वर्ज़न पैकिंग बदलता है, गुणवत्ता नहीं, और आप इसे दोहरा सकते हैं बिना इस डर के कि नुक़सान जमा होता जाएगा।
GZ एक ही धारा कंप्रेस करता है और कोई फ़ोल्डर नहीं रख सकता। ठीक इसीलिए GZ को आम तौर पर किसी आर्काइव फ़ॉर्मेट के साथ जोड़ा जाता है: आर्काइव फ़ाइलें इकट्ठी करता है, GZ नतीजे को कंप्रेस करता है।
7-Zip और Keka TAR और GZ — दोनों पढ़ लेते है, इसलिए आप नतीजे को असली फ़ाइल के बग़ल में रखकर देख सकते हैं, बिना दूसरा प्रोग्राम खोले।
GZ उन्हीं सैंपल को क़रीब आधी जगह में बाँध देता है। कुछ जाता नहीं — खोलने पर TAR फ़ाइल बिट-दर-बिट वापस मिलती है — और इसी से यह उस हर चीज़ के लिए बेहतर जगह बन जाता है जिसे आप सँभालकर रखना चाहते हैं।
TAR 1979 में आया। यह POSIX.1-2001 ustar में तय किया गया है, और अगर फ़ाइल को उस औज़ार से ज़्यादा जीना है जिसने उसे लिखा, तो यह बात क़ीमती है।
GZ 1992 से चला आ रहा है, और RFC 1952 में तय किया गया है। gzip, 7-Zip और Keka इस फ़ॉर्मेट को पढ़ लेते है।
हाँ: इस कन्वर्ज़न को ऐसा सॉफ़्टवेयर चाहिए जो ब्राउज़र में चलता ही नहीं। फ़ाइल एन्क्रिप्टेड होकर हमारे सर्वर तक जाती है, काम पूरा होते ही मिटा दी जाती है, और नतीजा 60 मिनट बाद। वहाँ यह काम 7-Zip करता है, वह आर्काइवर, अपने कमांड-लाइन रूप में।
हाँ, 25 MB तक की फ़ाइलों के लिए रोज़ 100 कन्वर्ज़न तक। यह एक सीमा इसलिए है कि यह कन्वर्ज़न ऐसे सर्वर पर चलता है जिसका ख़र्च हम उठाते हैं। इसके अलावा यहाँ कुछ भी सीमित नहीं है, और वॉटरमार्क किसी भी हाल में नहीं लगता। यह सीमा इसलिए है कि 7-Zip को चलने के लिए हमारी कोई मशीन चाहिए।
नहीं। GZ वही सामग्री बिना कुछ फेंके सँभालता है: नतीजा गुणवत्ता में असली फ़ाइल जैसा ही होता है। फ़ाइलें बाइट-दर-बाइट वैसी ही निकलती हैं। जो नहीं बचता वह है वह सब जो कंटेनर उनके *बारे में* जानता था, न कि जो उसके *भीतर* था — कोई पासवर्ड, और कुछ फ़ॉर्मेट में असली अनुमतियाँ और तारीख़ें।
GZ एक ही धारा कंप्रेस करता है और कोई फ़ोल्डर नहीं रख सकता। ठीक इसीलिए GZ को आम तौर पर किसी आर्काइव फ़ॉर्मेट के साथ जोड़ा जाता है: आर्काइव फ़ाइलें इकट्ठी करता है, GZ नतीजे को कंप्रेस करता है।
GZ उन्हीं सैंपल को क़रीब आधी जगह में बाँध देता है। कुछ जाता नहीं — खोलने पर TAR फ़ाइल बिट-दर-बिट वापस मिलती है — और इसी से यह उस हर चीज़ के लिए बेहतर जगह बन जाता है जिसे आप सँभालकर रखना चाहते हैं।
कुछ नहीं खोता। TAR और GZ — दोनों अपनी सामग्री बिना नुक़सान सँभालते हैं: यह कन्वर्ज़न पैकिंग बदलता है, गुणवत्ता नहीं, और आप इसे दोहरा सकते हैं बिना इस डर के कि नुक़सान जमा होता जाएगा।