टैर (कंप्यूटिंग)

From alpha
Jump to navigation Jump to search
tar
Filename extension
.tar
Internet media type
application/x-tar
Uniform Type Identifier (UTI)public.tar-archive
Magic numberu s t a r \0 0 0  at byte offset 257 (for POSIX versions)

u s t a r \040 \040 \0  (for old GNU tar format)[1]

absent in pre-POSIX versions
Latest release
various
various
Type of formatFile archiver
StandardPOSIX since POSIX.1, presently in the definition of pax[1]
Open format?Yes

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

इतिहास

जनवरी 1979 में कमांड-लाइन उपयोगिता को पहली बार संस्करण 7 यूनिक्स में प्रस्तुत किया गया था, जिसने tp प्रोग्राम (जो बदले में टैप को प्रतिस्थापित किया) को रूपांतरित किया ।[2] इस सूचना को संग्रहीत करने के लिए फ़ाइल के स्वरूप को पीओएसआईएक्स .1-1988 और बाद में पीओएसआईएक्स .1-2001 में मानकीकृत किया गया था[3],[4] और अधिकांश आधुनिक फ़ाइल संग्रह प्रणालियों द्वारा समर्थित प्रारूप बन गया। टैर कमांड को पैक्स कमांड के अनुकूल में पीओएसआईएक्स .1-2001 में छोड़ दिया गया था, जो कि यूएसटीएआर फाइल प्रारूप को प्रोत्साहन करने के अनुकूल था, टैर कमांड को कम से कम 1994 से पैक्स कमांड के अनुकूल में वापस लेने का संकेत दिया गया था।

आज, यूनिक्स जैसे प्रचालन प्रणाली में सामान्यतः टैर फाइलों को प्रोत्साहन करने के लिए यंत्र सम्मलित होते हैं, साथ ही उपयोगिताओं को सामान्यतः उन्हें संक्षिप्त करने के लिए उपयोग किया जाता है, जैसे कि gzip और bzip2 कमांड को IBM i प्रचालन प्रणाली में भी पोर्ट किया गया है।[5]

बीएसडी-टैर को विंडोज 10 संस्करण इतिहास के बाद से माइक्रोसॉफ़्ट विंडोज़ में सम्मलित किया गया है,[6][7]अन्यथा दूसरे विंडोज़ पर इन प्रारूपों को पढ़ने और लिखने के लिए कई तृतीय अनुकूल उपकरण उपलब्ध हैं।

मूल आधार

कई ऐतिहासिक टेप ड्राइव चर-लंबाई वाले ब्लॉक (डेटा संग्रहण) को पढ़ते और लिखते हैं, ब्लॉक के बीच टेप पर महत्वपूर्ण निरर्थक स्थान(टेप को भौतिक रूप से प्रारम्भ करने और चलने से रोकने के लिए) का संवहन करते हैं। कुछ टेप ड्राइव(और अनिर्मित डिस्क) केवल निश्चित-लंबाई वाले डेटा ब्लॉक का समर्थन करते हैं। साथ ही, किसी भी माध्यम जैसे फ़ाइल प्रणाली या नेटवर्क पर लिखते समय, कई छोटे ब्लॉकों की तुलना में एक बड़े ब्लॉक को लिखने में कम समय लगता है। इसलिए, टैर कमांड कई 512 बाइट ब्लॉक के लिखित प्रमाण में डेटा अभिलेखित करता है। उपयोगकर्ता एक अवरोधक कारक निर्दिष्ट कर सकता है, जो प्रति लिखित प्रमाण ब्लॉक की संख्या है। पूर्व निर्धारित मान 20 है, जो 10 KiB लिखित प्रमाण संरक्षित करता है।[8]


फ़ाइल प्रारूप

ऐतिहासिक और वर्तमान फ़ाइल उद्देश्य को सम्मिलित करते हुए कई टैर फ़ाइल स्वरूप उपलब्ध हैं। पीओएसआईएक्स में दो टैर प्रारूपों को कूटीकृत किया गया है: UStar प्रारूप और पीओएसआईएक्स .1-2001/pax जीएनयू कूटीकृत नहीं है लेकिन अभी भी वर्तमान उपयोग में जीएनयू टैर प्रारूप उपयोगी है।

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

हेडर

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

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

पीओएसआईएक्स .1-1988 से पहले (अर्थात v7) टैर हेडर:

अनुक्षेत्र ऑफसेट अनुक्षेत्र की माप फील्ड
0 100 फ़ाइल का नाम
100 8 फ़ाइल मोड (ऑक्टल)
108 8 एडमिन की सांख्यिक उपयोगकर्ता आईडी (ऑक्टल)
116 8 समूह की सांख्यिक उपयोगकर्ता आईडी (ऑक्टल)
124 12 बाइट्स में फ़ाइल का आकार (ऑक्टल)
136 12 संख्यात्मक यूनिक्स समय प्रारूप (ऑक्टल) में अंतिम संशोधन समय
148 8 हेडर रिकॉर्ड के लिए चेकसम
156 1 लिंक संकेतक (फ़ाइल प्रकार)
157 100 लिंक की गई फ़ाइल का नाम

पीओएसआईएक्स .1-1988 से पहले के लिंक संकेतक अनुक्षेत्र में निम्नलिखित मान हो सकते हैं:

लिंक सूचक क्षेत्र
मान अर्थ
'0' या (एएससीआईआई एनयूएल) सामान्य फ़ाइल
'1' हार्ड लिंक
'2' प्रतीकात्मक कड़ी

कुछ पूर्व- पीओएसआईएक्स .1-1988 टैर कार्यान्वयन ने नाम में अनुगामी स्लैश (विराम चिह्न) (/) होने से एक निर्देशिका का संकेत दिया।

संख्यात्मक मान को अष्टभुजाकार नंबर में ASCII डिजिट का प्रयोग करते हुए कोडित किया जाता है, जिसमें प्रमुख शून्य होते हैं। ऐतिहासिक कारणों से, अंतिम रिक्त या स्पेस (विराम चिह्न) वर्ण का भी उपयोग किया जाना चाहिए। इस प्रकार हालांकि फ़ाइल आकार को संग्रहीत करने के लिए 12 बाइट आरक्षित हैं, केवल 11 ऑक्टल अंक संग्रहीत किए जा सकते हैं। यह संग्रहीत फ़ाइलों पर अधिकतम 8 गीगाबाइट का फ़ाइल आकार देता है। इस सीमा को पार करने के लिए, 2001 में स्टार ने एक बेस-256 कोडिंग प्रारम्भ की जो एक संख्यात्मक क्षेत्र के सबसे बाएं बाइट के उच्च-क्रम बिट को समुच्चय करके इंगित किया गया है।[citation needed] जीएनयू-टैर और बीएसडी-टैर ने इस विचार का अनुसरण किया। इसके अतिरिक्त, 1988 से पहले पीओएसआईएक्स मानक से पहले के संस्करण शून्य के अतिरिक्त रिक्त स्थान वाले मानों को पैड करते हैं।

अंततः, की गणना हेडर लिखित प्रमाण के अहस्ताक्षरित बाइट मानों का योग लेकर की जाती है, जिसमें आठ चेक सम बाइट्स ASCII स्पेस (दशमलव मान 32) लिए जाते हैं। इसे छह अंकों की ऑक्टल संख्या के रूप में संग्रहीत किया जाता है जिसमें अग्रणी शून्य होता है जिसके बाद रिक्त और फिर एक स्थान होता है। विभिन्न कार्यान्वयन इस प्रारूप का पालन नहीं करते हैं। इसके अतिरिक्त, कुछ ऐतिहासिक टैर कार्यान्वयन बाइट्स को हस्ताक्षर के रूप में मानते हैं। कार्यान्वयन सामान्यतः दोनों तरीकों से चेकसम की गणना करते हैं, और यदि हस्ताक्षरित या अहस्ताक्षरित राशि सम्मलित चेकसम से मिलती जुलती है तो इसे अच्छा मानते हैं।

यूनिक्स फाइल प्रणाली एक ही फाइल के लिए कई लिंक (नाम) का समर्थन करते हैं। यदि ऐसी कई फाइलें टैर पुरालेखन में दिखाई देती हैं, तो केवल पहली फाइल को सामान्य फाइल के रूप में संग्रहित किया जाता है; बाकी को हार्ड लिंक के रूप में संग्रहीत किया जाता है, लिंक की गई फ़ाइल फ़ील्ड के नाम के साथ पहले वाले के नाम पर सेट किया जाता है। निकालने पर, ऐसे हार्ड लिंक को फाइल प्रणाली में फिर से बनाया जाना चाहिए।

यूएसस्टार प्रारूप

अधिकांश आधुनिक टैर प्रोग्राम यूएसस्टार (यूनिक्स स्टैंडर्ड टीएआर) में अभिलेखागार पढ़ते और लिखते हैं।[2][10] प्रारूप, 1988 से पीओएसआईएक्स IEEE P1003.1 मानक द्वारा प्रस्तुत किया गया। इसने अतिरिक्त हेडर फ़ील्ड प्रस्तुत किए। पुराने टैर प्रोग्राम अतिरिक्त सूचना (संभवतः आंशिक रूप से नामित फाइलों को निकालने) की अवहेलना करेंगे, जबकि नए प्रोग्राम यह निर्धारित करने के लिए यूस्टार स्ट्रिंग की उपस्थिति के लिए परीक्षण करेंगे कि नया प्रारूप उपयोग में है या नहीं। यूएसटीएआर प्रारूप लंबे फ़ाइल नामों की अनुमति देता है और प्रत्येक फ़ाइल के बारे में अतिरिक्त सूचना संग्रहीत करता है। अधिकतम फ़ाइल नाम का आकार 256 है, लेकिन यह पिछले पथ फ़ाइल नाम उपसर्ग और स्वयं फ़ाइल नाम के बीच विभाजित है, इसलिए यह बहुत कम हो सकता है।[11]

अनुक्षेत्र ऑफसेट अनुक्षेत्र की माप फील्ड
0 156 (कई क्षेत्र, पुराने प्रारूप के समान)
156 1 फ्लैग टाइप करें
157 100 (पुराने प्रारूप के समान क्षेत्र)
257 6 USTIA संकेतक, "ustar", फिर NUL
263 2 यूएसटीरिया संस्करण, "00"
265 32 एडमिन उपयोगकर्ता नाम
297 32 एडमिन समूह का नाम
329 8 डिवाइस प्रमुख संख्या
337 8 डिवाइस साधारण संख्या
345 155 फ़ाइल नाम उपसर्ग

प्रकार फ़्लैग फ़ील्ड में निम्न मान हो सकते हैं:

फ्लैग अनुक्षेत्र टाइप करें
मान अर्थ
'0' या (एएससीआईआई एनयूएल) सामान्य फ़ाइल
'1' हार्ड लिंक
'2' प्रतीकात्मक कड़ी
'3' कैरेक्टर स्पेशल
'4' ब्लॉक स्पेशल
'5' निर्देशिका
'6' फीफो
'7' सन्निहित फ़ाइल
'जी' मेटा डेटा के साथ ग्लोबल विस्तारित हेडर ( पीओएसआईएक्स .1-2001)
'एक्स' संग्रह में अगली फ़ाइल के लिए मेटाडेटा के साथ विस्तारित हेडर ( पीओएसआईएक्स .1-2001)
'ए'-'जेड' विक्रेता विशिष्ट विस्तारण (पोरियोसिस .1-1988)
अन्य सभी मान भविष्य के मानकीकरण के लिए आरक्षित

पीओएसआईएक्स .1-1988 लिंक फ़्लैग मान 'A'-'Z' का उपयोग करने वाले विक्रेता विशिष्ट विस्तारण का अलग-अलग विक्रेताओं के साथ आंशिक रूप से अलग अर्थ होता है और इस प्रकार इसे पुराने के रूप में देखा जाता है और पीओएसआईएक्स .1-2001 विस्तारण द्वारा प्रतिस्थापित किया जाता है जिसमें एक विक्रेता टैग भी सम्मलित होता है।

प्रकार '7' (समीपस्थ फ़ाइल) को औपचारिक रूप से पीओएसआईएक्स मानक में आरक्षित के रूप में चिह्नित किया गया है, लेकिन इसका मतलब उन फ़ाइलों को इंगित करना था जिन्हें डिस्क पर लगातार आवंटित किया जाना चाहिए। कुछ प्रचालन प्रणाली ऐसी फाइलों को स्पष्ट रूप से बनाने का समर्थन करते हैं, और इसलिए अधिकांश टीएआर प्रोग्राम उनका समर्थन नहीं करते हैं, और टाइप 7 फाइलों का समाधान करेंगे जैसे कि वे टाइप 0 (नियमित) थे। मासकॉम्प आरटीयू (रीयल टाइम यूनिक्स) प्रचालन प्रणाली पर चलने पर जीएनयू टैर के पुराने संस्करण एक अपवाद हैं, जो एक सन्निहित फ़ाइल का अनुरोध करने के लिए open() फलन के लिए O_CTG फ़्लैग का समर्थन करता है; हालाँकि, उस समर्थन को जीएनयू टैर संस्करण 1.24 से हटा दिया गया था।

पीओएसआईएक्स .1-2001/पैक्स

1997 में, सन माइक्रोसिस्टम्स ने टैर प्रारूप में विस्तारण जोड़ने के लिए एक विधि प्रस्तावित की। इस विधि को बाद में पीओएसआईएक्स .1-2001 मानक के लिए स्वीकार किया गया। इस प्रारूप को विस्तारित टैर प्रारूप या पैक्स (कमांड) प्रारूप के रूप में जाना जाता है। नया टैर प्रारूप उपयोगकर्ताओं को किसी भी प्रकार के विक्रेता-टैग किए गए विक्रेता-विशिष्ट संवर्द्धन को जोड़ने की अनुमति देता है। निम्नलिखित टैग पीओएसआईएक्स मानक द्वारा परिभाषित किए गए हैं:

  • 'atime, mtime': एक फ़ाइल के सभी टाइमस्टैम्प स्वैच्छिक विश्लेषण में (अधिकांश कार्यान्वयन नैनोसेकंड कणिकता का उपयोग करते हैं)
  • 'path': असीमित लंबाई और वर्ण समुच्चय कोडिंग के पाथ नाम
  • 'linkpath': असीमित लंबाई और वर्ण समुच्चय कोडिंग के सिमलिंक लक्ष्य नाम
  • 'uname, gname': उपयोगकर्ता और असीमित लंबाई और वर्ण समुच्चय कोडिंग के समूह के नाम
  • 'size': असीमित आकार वाली फ़ाइलें (ऐतिहासिक टैर प्रारूप 8 जीबी है)
  • 'uid, gid': आकार सीमा के बिना यूजर आईडी और ग्रुपिड (ऐतिहासिक टैर प्रारूप 2097151 की अधिकतम आईडी तक सीमित था)
  • पाथ नाम और उपयोगकर्ता/समूह नाम (यूटीएफ-8 -8) के लिए एक वर्ण समुच्चय परिभाषा

2001 में, स्टार प्रोग्राम नए प्रारूप का समर्थन करने वाला पहला टैर बन गया।[citation needed] 2004 में, जीएनयू टैर ने नए प्रारूप का समर्थन किया,[12] हालांकि यह इसे अभी तक टैर प्रोग्राम से अपने पूर्व निर्धारित मान आउटपुट के रूप में नहीं लिखता है।

[13]पैक्स प्रारूप को डिज़ाइन किया गया है जिससे यूस्टार प्रारूप को पढ़ने में सक्षम सभी कार्यान्वयन पैक्स प्रारूप को भी पढ़ सकें। एकमात्र अपवाद वे फ़ाइलें हैं जो विस्तारित सुविधाओं का उपयोग करती हैं, जैसे कि लंबे फ़ाइल नाम। संगतता के लिए, इन्हें टैर फाइलों में विशेष के रूप में कोडित किया गया है x या g फाइल टाइप करें, सामान्यतः एक के तहत PaxHeaders.XXXX निर्देशिका[14]: exthdr.name  एक पैक्स-समर्थक कार्यान्वयन सूचना का उपयोग करेगा, जबकि 7-ज़िप जैसे गैर-समर्थक कार्यान्वयन उन्हें अतिरिक्त फ़ाइलों के रूप में संसाधित करेंगे।[15]


उपयोग

कमांड सिंटैक्स

tar [-options] <टैर संग्रह का नाम> [फ़ाइलें या निर्देशिकाएं जिन्हें संग्रह में जोड़ना है]

मूल विकल्प:

  • -c, --create - एक नया संग्रह बनाएँ;
  • -a, --auto-compress - संग्रह को अतिरिक्त रूप से एक संपीडन के साथ संपीड़ित करें जो संग्रह के फ़ाइल नाम विस्तारण द्वारा स्वचालित रूप से निर्धारित किया जाएगा। यदि संग्रह का नाम के साथ समापन होता है *.tar.gz फिर gzip का उपयोग करें, यदि *.tar.xz फिर XZ Utils का उपयोग करें, *.tar.zst Zमानक आदि के लिए;
  • -r, --append - एक संग्रह के अंत में फ़ाइलें संलग्न करें;
  • -x, --extract, --get - एक संग्रह से फ़ाइलें निकालें;
  • -f, --file - संग्रह का नाम निर्दिष्ट करें;
  • -t, --list - संग्रह में फ़ाइलों और फ़ोल्डरों की सूची दिखाएं;
  • -v, --verbose - संसाधित फ़ाइलों की सूची दिखाएं।

मूल उपयोग

एक संग्रह फ़ाइल बनाएँ archive.tar फ़ाइल से README.txt और निर्देशिका src:

$ tar -cvf archive.tar README.txt src

archive.tarके लिए वर्तमान निर्देशिका में सामग्री निकालें :

$ tar -xvf archive.tar

एक संग्रह फ़ाइल बनाएँ archive.tar.gz फ़ाइल से README.txt और निर्देशिका src और इसे gzip से संक्षिप्त कर करें:

$ tar -cavf archive.tar.gz README.txt src

archive.tar.gz के लिए वर्तमान निर्देशिका में सामग्री निकालें:

$ tar -xvf archive.tar.gz


टैरपाइप

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

$ tar cf - srcdir | tar x -C destdir


सॉफ्टवेयर वितरण

ओपन-सोर्स मॉडल

ओपन-सोर्स सॉफ़्टवेयर वितरण के लिए टैर प्रारूप का बड़े पैमाने पर उपयोग जारी है। * एनआईएक्स-वितरण इसे विभिन्न स्रोत- और बाइनरी-पैकेज वितरण तंत्र में उपयोग करते हैं, जिसमें अधिकांश सॉफ़्टवेयर स्रोत कोड संपीड़ित टैर अभिलेखागार में उपलब्ध कराए जाते हैं।[citation needed]

सीमाएं

मूल टैर प्रारूप यूनिक्स के शुरुआती दिनों में बनाया गया था, और वर्तमान व्यापक उपयोग के अतिरिक्त, इसकी कई डिज़ाइन सुविधाओं को दिनांकित माना जाता है।[16]

कई पुराने टैर कार्यान्वयन विस्तारित विशेषताओं (xattrs) या कंट्रोल सूची को खोलो (ACLs) को लिखित प्रमाण नहीं करते हैं और न ही पुनर्स्थापित करते हैं। 2001 में, स्टार ने पीओएसआईएक्स .1-2001 पैक्स के लिए अपने स्वयं के टैग के माध्यम से एसीएल और विस्तारित विशेषताओं के लिए समर्थन प्रस्तुत किया। Bsdtar एसीएल को समर्थन देने के लिए स्टार विस्तारण का उपयोग करता है।[17] जीएनयू टैर के अधिक हाल के संस्करण लिनक्स विस्तारित विशेषताओं का समर्थन करते हैं, स्टार विस्तारण को फिर से लागू करते हैं।[18] बीएसडी टैर, टैर (5) के लिए फाइलटाइप मैनुअल में कई विस्तारण की समीक्षा की गई है।[17]

टैर की कमियों को दूर करने के लिए अन्य प्रारूप बनाए गए हैं।

टैरबॉम्ब

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

एक संबंधित समस्या टैर फाइल बनाते समय पथ (कंप्यूटिंग) या निर्देशिका (कंप्यूटिंग) संदर्भों का उपयोग है। ऐसे संग्रह से निकाली गई फ़ाइलें अधिकांशतः कार्यशील निर्देशिका के बाहर असामान्य स्थानों में बनाई जाएंगी और एक टैरबॉम्ब की तरह, उपस्थित फ़ाइलों को अधिलेखित करने की क्षमता होती है। हालांकि, फ्रीबीएसडी और जीएनयू टैर के आधुनिक संस्करण पूर्व निर्धारित मान रूप से पूर्ण पथ और मूल-निर्देशिका संदर्भों को बनाते या निकालते नहीं हैं, जब तक कि ध्वज के साथ स्पष्ट रूप से अनुमति नहीं दी जाती है। -P या विकल्प --absolute-names. Bsdtar प्रोग्राम, जो कई प्रचालन प्रणाली पर भी उपलब्ध है और macOS v10.6 पर पूर्व निर्धारित मान टैर उपयोगिता है, पैरेंट-डायरेक्टरी संदर्भ या प्रतीकात्मक लिंक का भी पालन नहीं करता है।[19][failed verification]

यदि किसी उपयोगकर्ता के पास केवल बहुत पुराना टैर उपलब्ध है, जो उन सुरक्षा उपायों को प्रदर्शित नहीं करता है, तो कमांड का उपयोग करके पहले टैर फ़ाइल की जांच करके इन समस्याओं को कम किया जा सकता है। tar tf archive.tar, जो सामग्री को सूचीबद्ध करता है और बाद में समस्याग्रस्त फ़ाइलों को बाहर करने की अनुमति देता है। ये आदेश किसी फ़ाइल को नहीं निकालते हैं, लेकिन संग्रह में सभी फ़ाइलों के नाम प्रदर्शित करते हैं। यदि कोई समस्याग्रस्त है, तो उपयोगकर्ता एक नई खाली निर्देशिका बना सकता है और उसमें संग्रह को निकाल सकता है - या पूरी तरह से टैर फ़ाइल से बच सकता है। अधिकांश ग्राफ़िकल उपकरण संग्रह की सामग्री को निकालने से पहले प्रदर्शित कर सकते हैं। विम (टेक्स्ट संपादक) टैर पुरालेखन खोल सकता है और उनकी सामग्री प्रदर्शित कर सकता है। जीएनयू Emacs एक टैर पुरालेखन खोलने में भी सक्षम है और इसकी सामग्री एक बफर में प्रदर्शित करता है।

रैंडम एक्सेस

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

प्रतिलिपि

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

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

मुख्य कार्यान्वयन

ऐतिहासिक रूप से, कई प्रणालियों ने टैर को लागू किया है, और फाइल संग्रहकर्ताओं की कई तुलनाओं में टैर के लिए कम से कम आंशिक समर्थन है (अधिकांशतः नीचे कार्यान्वयन में से एक का उपयोग करके)। टैर का इतिहास असंगतियों की कहानी है, जिसे टैर युद्धों के रूप में जाना जाता है। अधिकांश टैर कार्यान्वयन cpio और पैक्स (कमांड) को पढ़ और बना(बाद वाला वास्तव में पीओएसआईएक्स -2001-विस्तारण के साथ एक टैर-प्रारूप है) सकते हैं ।

उत्पत्ति के क्रम में प्रमुख कार्यान्वयन:

  • 'सोलारिस (प्रचालन प्रणाली ) टैर', मूल यूनिक्स V7 टैर पर आधारित है और सोलारिस प्रचालन प्रणाली पर पूर्व निर्धारित मान के रूप में आता है
  • जीएनयू टैर अधिकांश लिनक्स वितरणों पर पूर्व निर्धारित मान है। यह सार्वजनिक डोमेन कार्यान्वयन pdtar पर आधारित है जो 1987 में प्रारम्भ हुआ था। हाल के संस्करण ustar, pax, जीएनयू और v7 स्वरूपों को सम्मिलित करते हुए विभिन्न स्वरूपों का उपयोग कर सकते हैं।
  • फ्रीबीएसडी टैर (भी बीएसडी टैर) मैकओएस को सम्मिलित करते हुए अधिकांश बर्कले सॉफ्टवेयर वितरण प्रचालन प्रणाली पर पूर्व निर्धारित मान टैर बन गया है। मुख्य कार्यक्षमता अन्य अनुप्रयोगों में सम्मलित करने के लिए लिबरचार्चिव के रूप में उपलब्ध है। यह कार्यान्वयन स्वचालित रूप से फ़ाइल के प्रारूप का पता लगाता है और टैर, पैक्स, cpio, ज़िप, rar, ar, xar, rpm और ISO 9660 cdrom छवियों से निकाल सकता है। यह कार्यात्मक रूप से समतुल्य cpio कमांड-लाइन इंटरफ़ेस के साथ आता है।
  • शिली टैर, जिसे स्टार के रूप में जाना जाता है, ऐतिहासिक रूप से महत्वपूर्ण है क्योंकि इसके कुछ विस्तार काफी प्रचलित थे। पहली बार अप्रैल 1997 में प्रकाशित,[20] इसके डेवलपर ने कहा है कि उसने 1982 में विकास प्रारम्भ किया था।[21]
  • पायथन टार्फाइल मॉड्यूल कई टैर प्रारूपों का समर्थन करता है, जिसमें ustar, पैक्स और जीएनयू सम्मलित हैं; यह पढ़ सकता है लेकिन V7 प्रारूप और SunOS टैर विस्तारित प्रारूप नहीं बना सकता है; पैक्स अभिलेखागार के निर्माण के लिए पूर्व निर्धारित मान स्वरूप है।[22] 2003 से उपलब्ध है।[23]

इसके अतिरिक्त, अधिकांश पैक्स (कमांड) और cpio कार्यान्वयन कई प्रकार की टैर फाइलें पढ़ और बना सकते हैं।

संपीड़ित फ़ाइलों के लिए प्रत्यय

टैर पुरालेखन फाइलों में सामान्यतः फाइल प्रत्यय .tar (जैसे somefile.tar) होता है।

एक टैर पुरालेखन फ़ाइल में उन फ़ाइलों की असम्पीडित बाइट धाराएँ होती हैं जिनमें यह सम्मलित है। पुरालेखन कंप्रेशन प्राप्त करने के लिए, विभिन्न प्रकार के आधार - सामग्री संकोचन प्रोग्राम उपलब्ध हैं, जैसे कि gzip, bzip2, XZ Utils, lzip, Lempel-Ziv-Markov चेन एल्गोरिथम, Z Standard, या Compress, जो पूरे टैर पुरालेखन को संकुचित करते हैं। सामान्यतः, पुरालेखन के संकुचित प्रारूप को पुरालेखन फाइल नाम में फॉर्मेट-स्पेसिफिक संपीडन प्रत्यय जोड़कर एक फाइल नाम प्राप्त होता है। उदाहरण के लिए, एक टैर पुरालेखन आर्काइव.टार, को आर्काइव.टार.जीजेड नाम दिया गया है, जब इसे gzip द्वारा संक्षिप्त कर किया जाता है।

प्रचलित टैर प्रोग्राम जैसे बर्कले सॉफ्टवेयर डिस्ट्रीब्यूशन और टैर के जीएनयू संस्करण कमांड लाइन इंटरफेस Z (कंप्रेस), z (gzip), और j (bzip2) का समर्थन करते हैं जिससे पुरालेखन फ़ाइल को निर्माण या अनपैकिंग पर संपीड़ित या विघटित किया जा सके। अपेक्षाकृत हाल की परिवर्धन में --lzma (लेम्पेल-ज़िव-मार्कोव श्रृंखला एल्गोरिथम), --lzop (lzop), --xz या J (XZ Utils), --lzip (lzip), और --zstd सम्मलित हैं।[24] यदि समर्थित फ़ाइल नाम विस्तारण का उपयोग किया जाता है, तो इन स्वरूपों का डिकंप्रेशन स्वचालित रूप से नियंत्रित किया जाता है, और यदि विकल्प --auto-compress (संक्षिप्त रूप -a) जीएनयू टैर के एक लागू संस्करण के लिए पास किया जाता है, तो उसी फ़ाइल नाम विस्तारण का उपयोग करके संपीड़न को स्वचालित रूप से नियंत्रित किया जाता है।[11]बीएसडी टैर कंप्रेशर्स (lrzip, LZ4 (संपीड़न एल्गोरिथम)) की एक व्यापक श्रेणी का पता लगाता है, फ़ाइल नाम का नहीं बल्कि डेटा का उपयोग करके।[25] अपरिचित स्वरूपों को पाइपिंग द्वारा मैन्युअल रूप से संपीड़ित या विघटित किया जाना है।

MS-DOS की 8.3 फ़ाइलनाम सीमाओं के परिणामस्वरूप संपीड़ित टैर आर्काइव्स के नामकरण के लिए अतिरिक्त परिपाटियां हुईं। हालाँकि, फ़ाइल आवंटन तालिका के साथ अब इस प्रथा में गिरावट आई है, जो अब लंबे फ़ाइलनामों की प्रस्तुति कर रही है।

एक संपीड़ित संग्रह बनाने के लिए टैर आर्काइविंग का उपयोग अधिकांशतः एक संपीड़न विधि, जैसे gzip के साथ किया जाता है। जैसा कि दिखाया गया है, संग्रह में फ़ाइलों का संयोजन एक इकाई के रूप में संकुचित होता है।
फ़ाइल प्रत्यय समतुल्य[11]
कम्प्रैसर लंबा छोटा
bzip2 .tar.bz2 .tb2, .tbz, .tbz2, .tz2
gzip .tar.gz .taz, .tgz
lzip .tar.lz
lzma .tar.lzma .tlz
lzop .tar.lzo
एक्सजेड .tar.xz .txz
कंप्रेस .टार.जेड .tZ, .taZ
जेडएसटीडी .tar.zst .tzst

यह भी देखें

संदर्भ

  1. Gilmore, John; Fenlason, Jay (4 February 2019). "Basic Tar Format". gnu.org. and others. Free Software Foundation. Retrieved 17 April 2019.
  2. 2.0 2.1 "tar(5) manual page". FreeBSD.org. FreeBSD. 20 May 2004. Retrieved 2 May 2017.
  3. IEEE Std 1003.1-1988, IEEE Standard for Information Technology - Portable Operating System Interface (POSIX)
  4. IEEE Std 1003.1-2001, IEEE Standard for Information Technology - Portable Operating System Interface (POSIX)
  5. IBM. "IBM System i Version 7.2 Programming Qshell" (PDF). IBM. Retrieved 2020-09-05.
  6. "Announcing Windows 10 Insider Preview Build 17063 for PC". Windows Experience Blog. 2017-12-19. Retrieved 2 July 2018.
  7. "टार और कर्ल विंडोज़ में आते हैं!". 2019-03-22.
  8. "ब्लॉक कर रहा है". ftp.gnu.org. Retrieved 2020-08-26.
  9. Hoo, James. "Open/Extract TAR File with Freeware on Windows/Mac/Linux". e7z Org. Archived from the original on 6 February 2015. Retrieved 3 September 2019.
  10. Kientzle, Tim (1995). इंटरनेट फ़ाइल प्रारूप. Coriolis Groups Books. p. 196. ISBN 978-1-883577-56-8. Retrieved 2022-11-10.
  11. 11.0 11.1 11.2 "GNU tar 1.32: 8.1 Using Less Space through Compression". GNU. 2019-02-23. Retrieved 2019-08-11.
  12. NEWS, git.savannah.gnu.org - search for "Added support for POSIX.1-2001 and ustar archive formats."
  13. "GNU tar 1.34: 8. Controlling the Archive Format". GNU. Retrieved 2022-07-11.
  14. pax – Shell and Utilities Reference, The Single UNIX Specification, Version 4 from The Open Group
  15. "#2116 Tars with pax headers not parsed". 7-Zip / Bugs | SourceForge.
  16. Proposed format to replace tar, by the Duplicity utility's developers.
  17. 17.0 17.1 tar(5) – FreeBSD File Formats Manual
  18. "Extended attributes: the good, the not so good, the bad". Les bons comptes. 15 July 2014. Archived from the original on 14 December 2014. Retrieved 3 September 2019. The extended attributes can be very valuable for storing file metadata (e.g. author="John Smith", subject="country landscape"), in the many cases where you do not want or can't store this data in the file internal properties.
  19. Man page for "bsdtar".
  20. Thomas E. Dickey (January 4, 2015). "TAR versus Portability: Schily tar". Retrieved October 23, 2021.
  21. Jörg Schilling (September 4, 2021). "स्टार - अद्वितीय मानक टेप संग्रहकर्ता". Retrieved October 23, 2021.
  22. tarfile module, python.org
  23. tarfile.py, github.com
  24. Poznyakoff, Sergey (2019-01-02). "tar-1.31 released [stable]". GNU mailing lists. Retrieved 2019-08-06.
  25. tar(1) – FreeBSD General Commands Manual


बाहरी संबंध