TAR

TAR फ़ाइल क्या होती है?

फ़ाइलों को बिना कंप्रेस किए एक साथ बाँधता है। Unix पर पैक करने का क़दम, लगभग हमेशा GZ के साथ।

TAR

TAR है क्या

TAR एक कंटेनर है: एक खोल, जिसके अंदर वे धाराएँ रहती हैं जिन्हें किसी और ने एन्कोड किया है। इसका इस्तेमाल सहेजना और प्रोग्रामों के बीच डेटा ले जाना के लिए होता है।

एक्सटेंशन .tar है और पूरा नाम Tape Archive। दोनों उतना नहीं बताते जितना यह कि फ़ाइल अंदर क्या-क्या रख सकती है — और इस पन्ने का बाक़ी हिस्सा इसी के बारे में है।

TAR आया कहाँ से

यह 1979 तक पीछे जाता है। विनिर्देश POSIX.1-2001 ustar है।

जो फ़ॉर्मेट इतने लंबे समय तक पढ़ा जाता रहा हो, उसे वह चीज़ सौंपी जा सकती है जो आपको दस साल बाद वापस चाहिए।

विनिर्देश सार्वजनिक है

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

कुछ भी फेंका नहीं जाता

TAR फ़ाइल अपना अंदरूनी हिस्सा हूबहू सहेजती है। दोबारा सहेजने से कुछ नहीं बदलता, इसलिए इसे जितनी बार चाहें खोलिए, बदलिए और फिर से सहेजिए — नुक़सान जमा नहीं होता। यही बात इसे सौंपने का नहीं, काम करने का फ़ॉर्मेट बनाती है।

यह पूरा फ़ोल्डर रख सकती है

TAR फ़ाइल पूरी डिरेक्टरी सहेजती है: नाम, फ़ोल्डर और उनके बीच का ढाँचा। इसी वजह से यह ईमेल के अटैचमेंट में फ़ोल्डर की जगह ले पाती है।

अपनी हिफ़ाज़त के लिए यह क्या करती है

TAR फ़ाइल अपने साथ एक चेकसम, जिससे ख़राब हुई फ़ाइल चुपचाप ग़लत पढ़े जाने के बजाय पकड़ में आ जाए लाती है।

चेकसम कुछ ठीक नहीं करता। वह आपको बताता है कि फ़ाइल ख़राब है — और यही फ़र्क़ है अभी पता चलने में और उससे पता चलने में जिसे आपने वह फ़ाइल भेज दी थी।

TAR को खोलता कौन है

tar, 7-Zip और Keka इसे पढ़ते हैं, और इसी तरह के ज़्यादातर दूसरे प्रोग्राम भी।

फ़ाइल न खुले तो कसूर फ़ॉर्मेट का शायद ही कभी होता है — अक्सर प्रोग्राम ही फ़ॉर्मेट से पुराना होता है। किसी पुरानी चीज़ में बदल लेना इससे निकलने का भरोसेमंद रास्ता है, और इस वेबसाइट का बाक़ी हिस्सा इसी के लिए है।

इसे ब्राउज़र में खोलना

इसे कोई भी ब्राउज़र नहीं पढ़ता।

इसे बदलने की सबसे आम वजह यही है: फ़ॉर्मेट ख़राब है, ऐसा नहीं — बात यह है कि जहाँ आप फ़ाइल दिखाना चाहते हैं वह जगह उसे पढ़ ही नहीं सकती।

यह काम करने का फ़ॉर्मेट है

TAR इसलिए बना है कि इसे खोला और बदला जाए। जब तक काम चल रहा है फ़ाइल इसी फ़ॉर्मेट में रखिए, और जब भी बनी हुई प्रति चाहिए हो, इसी से निर्यात कीजिए।

इसके साथ ग़लत क्या होता है

बार-बार आने वाली शिकायतें: जितना अंदर है उस हिसाब से फ़ाइलें बड़ी होती हैं।

इनमें से कोई भी फ़ॉर्मेट से दूर रहने की वजह नहीं है। ये वे बातें हैं जिन्हें इनमें से कोई आपको चौंकाए उससे पहले जान लेना चाहिए — यह अलग दावा है, और ज़्यादा काम का।

यह कुछ भी संपीड़ित नहीं करता, यही मुख्य तथ्य है

TAR फ़ाइलों को एक फ़ाइल में बंडल करता है। यह उन्हें छोटा नहीं करता। नाम tape archive का छोटा रूप है, और इसे 1979 में एक डायरेक्ट्री ट्री को मैग्नेटिक टेप पर एक लगातार स्ट्रीम में लिखने के लिए डिज़ाइन किया गया।

TAR की लगभग हर उलझन इसी से निकलती है। किसी फ़ोल्डर की .tar उस फ़ोल्डर से थोड़ी बड़ी होती है, क्योंकि यह हर फ़ाइल से पहले हेडर जोड़ता है। अगर आप छोटी फ़ाइल की उम्मीद कर रहे थे, कुछ ग़लत नहीं हुआ — आपने सिकोड़ने वाला नहीं, बंडल करने वाला औज़ार इस्तेमाल किया।

एक्सटेंशन के दो हिस्से क्यों हैं

क्योंकि दो अलग प्रोग्राम चले। archive.tar.gz को tar ने बंडल किया और फिर उस एक फ़ाइल को gzip ने संपीड़ित किया। .tar.bz2 ने bzip2 इस्तेमाल किया, .tar.xz ने xz।

छोटे रूप .tgz और .txz का मतलब वही है और इसलिए मौजूद हैं क्योंकि कुछ फ़ाइल सिस्टम कभी एक से ज़्यादा बिंदु पर एतराज़ करते थे।

बंडल को संपीड़ित करना फ़ाइलों को अलग-अलग संपीड़ित करने से बेहतर है

यही क्रम है जिसकी वजह से .tar.gz अक्सर ZIP से बेहतर करता है। ZIP हर फ़ाइल अलग संपीड़ित करता है, तो एक हज़ार मिलती-जुलती टेक्स्ट फ़ाइलें अलग-अलग सिकोड़ी जाती हैं। tar-फिर-gzip कम्प्रेसर को एक लगातार स्ट्रीम देता है।

सोर्स कोड या लॉग फ़ाइलों पर फ़र्क़ बड़ा है। तस्वीरों के फ़ोल्डर पर लगभग कुछ नहीं, क्योंकि JPEG पहले से संपीड़ित हैं।

क़ीमत: आप अंदर तेज़ी से नहीं पहुँच सकते

वही लगातार स्ट्रीम बड़ी .tar.gz से एक फ़ाइल निकालना धीमा बना देती है। कोई इंडेक्स नहीं, और संपीड़न का मतलब है बाइट पोज़िशन पहले से नहीं गिनी जा सकतीं।

ZIP ने उल्टा व्यापार किया — इसका इंडेक्स आख़िर में है और हर फ़ाइल अलग संपीड़ित है, तो कोई भी एक चीज़ तुरंत निकाली जा सकती है। TAR शुरू से पढ़ी जाने वाली आर्काइव के लिए, ZIP कभी-कभार झाँकी जाने वाली के लिए।

यह क्या बचाता है जो ZIP नहीं बचाता

Unix फ़ाइल अनुमतियाँ, स्वामित्व, सिम्बॉलिक और हार्ड लिंक, और ZIP से ज़्यादा सटीक टाइमस्टैम्प। यही वजह है सॉफ़्टवेयर ZIP की जगह .tar.gz में बाँटा जाता है।

Windows पर इसमें से ज़्यादातर के लिए कोई जगह नहीं और चुपचाप छोड़ दिया जाता है। कुछ टूटता नहीं, पर Windows पर खोली और दोबारा पैक की गई .tar.gz अपनी अनुमतियाँ खो चुकी होती है।

कौन-सा कम्प्रेसर, और हर एक किस काम का है

gzip तेज़, सार्वभौमिक और सुरक्षित डिफ़ॉल्ट है। xz कहीं ज़्यादा संपीड़ित करता है और ज़्यादा वक़्त लेता है। bzip2 दोनों के बीच है और अब लगभग विरासती चुनाव है। zstd आधुनिक विकल्प है।

किसी और को दी जाने वाली फ़ाइल के लिए, .tar.gz सही जवाब बना रहता है, क्योंकि सीमा यह है कि पाने वाला क्या खोल सकता है।

कई असंगत वर्शन वाला फ़ॉर्मैट

मूल डिज़ाइन ने फ़ाइल नाम 100 अक्षर तक सीमित किए और बड़ी फ़ाइल या लंबे पथ के लिए जगह नहीं थी। दो एक्सटेंशन ने इसे अलग-अलग हल किया — GNU tar का और POSIX pax फ़ॉर्मैट का।

व्यवहार में आधुनिक औज़ार दोनों पढ़ लेते हैं और यह शायद ही सामने आता है। जहाँ आता है, लक्षण साफ़ है — कटा हुआ फ़ाइल-नाम या पथ बहुत लंबे होने की एरर।

आप इसे असल में कहाँ मिलेंगे

सोर्स कोड रिलीज़, Linux और macOS सॉफ़्टवेयर वितरण, Docker इमेज लेयर, सर्वर बैकअप, और होस्टिंग कंट्रोल पैनल के export। अगर आपने किसी सर्वर पर चलाने के लिए कुछ डाउनलोड किया है, यह शायद इसी तरह आया।

Windows पर भी अब यह पहले से ज़्यादा दिखता है — Windows ने 2023 से .tar.gz को मूल रूप से खोलना सीख लिया है।

कब इसे ZIP में बदलें, कब नहीं

बदलिए जब आर्काइव किसी इंसान के पास जा रही है — Windows पर सहकर्मी, वेब अपलोड फ़ॉर्म। ZIP वह फ़ॉर्मैट है जिसे हर ऑपरेटिंग सिस्टम बिना सोचे खोलता है।

न बदलें जब आर्काइव वापस किसी Unix सिस्टम को जा रही है। ZIP में दोबारा पैक करना अनुमतियाँ, स्वामित्व और सिम्बॉलिक लिंक हटा देता है — निकाला गया नतीजा शायद काम ही न करे।

ज़रूरी जानकारी, एक जगह

TAR फ़ॉर्मेट की पहचान और उसका स्रोत।
एक्सटेंशन.tar
मीडिया टाइपapplication/x-tar
पहली बार प्रकाशित1979
विनिर्देशPOSIX.1-2001 ustar