आज 'टार' का उपयोग करने से क्या फायदा है?


209

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

प्रशन:

  • क्या एक फ़ाइल स्वरूप का उपयोग करने की तुलना tarमें gzipया bzip2उसी डेटा संरचना में एकत्रीकरण का उपयोग करने की तुलना में एकत्रीकरण / संपीड़न / विघटन चरणों के दौरान एक प्रदर्शन जुर्माना है ? तुलना करने वाले कंप्रेसर के रनटाइम समान है (उदाहरण के लिए gzip और Deflate समान हैं)।

  • क्या tarफ़ाइल प्रारूप की विशेषताएं हैं जो अन्य फ़ाइल प्रारूप, जैसे .7zऔर .zipनहीं हैं?

  • चूँकि tarइतनी पुरानी फ़ाइल प्रारूप है, और नए फ़ाइल प्रारूप आज भी मौजूद हैं, क्यों tar(क्या इनकैप्सुलेटेड है gzip, bzip2या नया xzभी है) अभी भी जीएनयू / लिनक्स, एंड्रॉइड, बीएसडी और अन्य ऐसे UNIX ऑपरेटिंग सिस्टम पर फ़ाइल के लिए आज भी व्यापक रूप से उपयोग किया जाता है। स्थानान्तरण, कार्यक्रम स्रोत और बाइनरी डाउनलोड, और कभी-कभी पैकेज प्रबंधक प्रारूप के रूप में भी?


33
मैं असहमत हूं कि यह "समय बर्बाद करता है"। यदि आपके प्रदर्शन का मतलब है, तो टार के लिए कोई वास्तविक प्रदर्शन जुर्माना नहीं है क्योंकि प्रारूप बहुत कुशल है। यदि आपका मतलब है कि यह आपका समय बर्बाद करता है, तो मैं नहीं देखता कि कैसे tar xvzfकठिन से अधिक कठिन है 7z -x...
allquixotic

41
वह इस तथ्य को विलाप करते हुए प्रतीत होता है कि टार शुरू में एक कैटलॉग को स्टोर नहीं करता है, इसलिए गुइ संपीड़न उपकरण जो निकालने से पहले सामग्री को सूचीबद्ध करना चाहते हैं, केवल सामग्री को सूचीबद्ध करने के लिए पूरे टार को विघटित करना पड़ता है, फिर वे इसे निकालने के बाद फिर से विघटित करते हैं। ।
सउसी १४'१३ को १६:०३

10
@MarcusJ: आपको लगता है कि 7z किसी तरह जादुई रूप से जानता है कि प्रत्येक फ़ाइल एक संग्रह में कहां से शुरू होती है? इसके अलावा, सामान्य संपीड़न एल्गोरिदम (gzip, bzip2) सामग्री स्ट्रीमिंग के साथ काम करते हैं: अगले चरण से पहले 100% पहले चरण को पूरा करने की कोई आवश्यकता नहीं है।
souser12345

11
इसके अलावा @MarcusJ आपको दो अलग-अलग चीजों को भ्रमित करने वाला लगता है: जब आप करते हैं tar xvzf, तो असम्पीडित डेटा प्रारूप में हार्ड डिस्क को नहीं लिखा जाता है .tar! आप सही कह रहे हैं कि अगर आप भाग गए gunzip blah.tar.gzऔर फिर tar xf blah.tar, यह डेटा को दो बार डिस्क करने के लिए लिखेगा (एक बार .tar और फिर फाइलसिस्टम में फाइल के रूप में), लेकिन कोई भी वास्तव में ऐसा नहीं करता है। tar xzfका उपयोग करता है एक यूनिक्स पाइप (मूल रूप से एक स्मृति प्रतिलिपि) से असम्पीडित डेटा स्थानांतरित करने के gzip(या जो भी कंप्रेसर) को tarहै, तो डेटा है नहीं में डिस्क पर लिखी .tarप्रारूप।
allquixotic

14
एक बात जो मुझे पता है वह यह है कि tar(विशेष रूप से संपीड़ित) डेटा भ्रष्टाचार की बात आने पर भयानक व्यवहार करता है। आधुनिक प्रारूपों द्वारा जोड़े गए छोटे अतिरेक / रिकवरी डेटा सोने के लायक हैं
पीपीसी

जवाबों:


178

भाग 1: प्रदर्शन

यहां दो अलग-अलग वर्कफ़्लो की तुलना की गई है और वे क्या करते हैं।

आपके पास डिस्क पर एक फ़ाइल blah.tar.gzहै, जो कहती है, 1 जीबी की गज़िप-संपीड़ित डेटा, जो जब असम्पीडित होती है, तो 2 जीबी (इसलिए 50% का संपीड़न अनुपात) होती है।

जिस तरह से आप इसे बनाएंगे, यदि आप अलग से संग्रह और संपीड़न करते थे, तो यह होगा:

tar cf blah.tar files ...

इसका परिणाम यह होगा blah.tarकि files ...असम्पीडित रूप में एक मात्र एकत्रीकरण है ।

तब तुम करोगे

gzip blah.tar

यह blah.tarडिस्क से सामग्री को पढ़ता है , उन्हें gzip संपीड़न एल्गोरिथ्म के माध्यम से संपीड़ित करता है, सामग्री को लिखता है blah.tar.gz, फिर फ़ाइल को अनलिंक (हटाएं) करता है blah.tar

अब, विघटित करते हैं!

रास्ता 1

आपके पास blah.tar.gz, एक रास्ता या कोई अन्य।

आप चलाने का निर्णय लेते हैं:

gunzip blah.tar.gz

यह करेगा

  • 1 जीबी संकुचित डेटा सामग्री पढ़ें blah.tar.gz
  • gzipमेमोरी में डीकंप्रेसर के माध्यम से संपीड़ित डेटा को प्रोसेस करें ।
  • जैसे ही मेमोरी बफर डेटा के "ब्लॉक" ब्लॉक के साथ भरता है, blah.tarडिस्क पर फ़ाइल में असम्पीडित डेटा को लिखें और जब तक कि सभी संपीड़ित डेटा को न पढ़ा जाए, तब तक दोहराएं।
  • फ़ाइल को अनलिंक (हटाएं) करें blah.tar.gz

अब, आपके पास blah.tarडिस्क है, जो कि असम्पीडित है, लेकिन इसके भीतर एक या एक से अधिक फाइलें हैं, जिसमें बहुत कम डेटा संरचना ओवरहेड है। फ़ाइल का आकार संभवतः बाइट्स का एक जोड़ा है जो सभी फ़ाइल डेटा के योग से बड़ा होगा।

तुम दौड़ो:

tar xvf blah.tar

यह करेगा

  • की असंपीड़ित डेटा सामग्री की पढ़ें 2 जीबी blah.tarऔर tarफाइल अनुमति, फ़ाइल नाम, निर्देशिका, आदि के बारे में जानकारी सहित फ़ाइल स्वरूप का डाटा संरचनाओं,
  • डिस्क से 2 GB डेटा प्लस मेटाडेटा लिखें। इसमें शामिल हैं: डेटा संरचना / मेटाडेटा जानकारी को डिस्क पर नई फ़ाइलों और निर्देशिकाओं को उचित रूप में बनाना, या मौजूदा फ़ाइलों और निर्देशिकाओं को नए डेटा सामग्री के साथ फिर से लिखना।

कुल डेटा हम पढ़ें इस प्रक्रिया में डिस्क से 1 जीबी (gunzip के लिए) + 2 जीबी (अलकतरा के लिए) = 3 जीबी था।

इस प्रक्रिया में डिस्क को WROTE करने के लिए कुल डेटा 2 GB ( गनज़िप के लिए) + 2 GB (टार के लिए) + मेटाडेटा के लिए कुछ बाइट्स = लगभग 4 GB है।

रास्ता २

आपके पास blah.tar.gz, एक रास्ता या कोई अन्य।

आप चलाने का निर्णय लेते हैं:

tar xvzf blah.tar.gz

यह करेगा

  • blah.tar.gzस्मृति में, एक बार में 1 GB संपीड़ित डेटा सामग्री , पढ़ें ।
  • gzipमेमोरी में डीकंप्रेसर के माध्यम से संपीड़ित डेटा को प्रोसेस करें ।
  • जैसे ही मेमोरी बफ़र भर जाता है, यह फ़ाइल प्रारूप पार्सर के माध्यम से मेमोरी में, उस डेटा को पाइप कर देगा tar, जो मेटाडेटा, आदि के बारे में जानकारी और असम्पीडित फ़ाइल डेटा को पढ़ेगा।
  • जैसे ही मेमोरी बफर tarफ़ाइल पार्सर में भर जाता है , यह डिस्क और डेटा को असम्पीडित करके फ़ाइलों और निर्देशिकाओं को बनाने और उन्हें असम्पीडित सामग्रियों से भरने के लिए असम्पीडित डेटा को लिख देगा।

इस प्रक्रिया में हमने डिस्क से जो कुल डेटा पढ़ा था, वह संकुचित डेटा, अवधि का 1 जीबी था।

इस प्रक्रिया में डिस्क को WROTE करने के लिए हमने कुल डेटा 2 GB असम्पीडित डेटा + मेटाडेटा के लिए कुछ बाइट्स = लगभग 2 GB।

अगर आप देखते हैं, डिस्क मैं की राशि / में हे रास्ता 2 है समान डिस्क आई / ओ द्वारा, कहते हैं, प्रदर्शन करने के लिए Zipया 7-Zip कार्यक्रमों संपीड़न अनुपात में कोई अंतर के लिए समायोजन,।

और अगर संपीड़न अनुपात आपकी चिंता है, तो Xzकंप्रेसर को एन्कैप्सुलेट करने के लिए उपयोग करें tar, और आपके पास LZMA2'ed TAR संग्रह है, जो कि 7-ज़िप के लिए उपलब्ध सबसे उन्नत एल्गोरिथ्म के रूप में कुशल है

भाग 2: सुविधाएँ

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

भाग 3: संगतता

कई उपकरण को .tar.gz या .tar.bz2 के रूप में स्रोत या द्विआधारी रूप में वितरित किया जाता है, क्योंकि यह एक "सबसे सामान्य सामान्य भाजक" फ़ाइल स्वरूप है: बहुत से अधिकांश विंडोज उपयोगकर्ताओं के पास .zip या .rar decompressors, अधिकांश लिनक्स प्रतिष्ठानों तक पहुंच होती है। यहां तक ​​कि सबसे बुनियादी, कम से कम टार और गनज़िप तक पहुंच होगी, चाहे कितना भी पुराना या कम हो। यहां तक ​​कि एंड्रॉइड फर्मवारों के पास इन उपकरणों तक पहुंच है।

आधुनिक वितरण चलाने वाले दर्शकों को लक्षित करने वाली नई परियोजनाएं अधिक आधुनिक प्रारूप में वितरित कर सकती हैं, जैसे कि .tar.xz (Xz (LZMA) संपीड़न प्रारूप का उपयोग करके), जो कि gzip या bzip2 की तुलना में बेहतर संपीड़ित करता है), या .7z, जो समान है। जिप या RAR फ़ाइल स्वरूप जिसमें यह दोनों को संपीड़ित करता है और एक फाइल में कई फाइलों को इनकैप्सुलेट करने के लिए एक लेआउट निर्दिष्ट करता है।

आप .7z को अधिक बार उसी कारण से उपयोग नहीं करते हैं , जैसा कि ओपस , या वेबएम में वीडियो जैसे नए स्वरूपों में ऑनलाइन डाउनलोड स्टोर से संगीत नहीं बेचा जाता है । प्राचीन या बहुत बुनियादी प्रणालियों को चलाने वाले लोगों के साथ संगतता।


तीन अलग हेडर के तहत अलग किए गए सभी सामग्री के साथ महान जवाब के लिए यश।
JFW

2
"भाग 3: संगतता" ऐसा प्रतीत होता है कि @ क्रुग के उत्तर से कॉपी किया गया है।
टाइटेनियमडेकॉय

23
@titaniumdecoy क्या आपने देखा है कि यह सर्वव्यापी था जिसने मूल रूप से उस भाग को लिखा था और इसे क्रूग के उत्तर में संपादित किया था?
slhck

2
यह इंगित करने के लिए धन्यवाद, मैंने ध्यान नहीं दिया। हालाँकि इस पृष्ठ पर दो अलग-अलग उत्तरों में पाठ का एक समान ब्लॉक होना मेरे लिए थोड़ा मूर्खतापूर्ण लगता है।
टाइटेनियमडेकॉय

1
यह जवाब देता है कि tarसंग्रहित पारिस्थितिकी तंत्र में फिट बैठता है (यानी, एक साथ फ़ाइलों को एकत्र करना, प्रदर्शन को बढ़ावा देना और अनुमतियों को बचाने जैसे कुछ अन्य लाभ), लेकिन यह पता नहीं है कि आधुनिक विकल्प जैसे कि darजगह में उपयोग क्यों नहीं किए जाते हैं। दूसरे शब्दों में, यह उत्तर फाइलों के एग्रीगेटर्स के उपयोग को सही ठहराता है, लेकिन tarअपने आप में सॉफ्टवेयर का नहीं ।
जाबोर

101

इसका जवाब स्टैक ओवरफ्लो पर दिया गया है

bzip और gzip एकल फाइलों पर काम करते हैं, फाइलों के समूह पर नहीं। सादा पुराना ज़िप (और pkzip) फाइलों के समूहों पर काम करता है और इसमें निर्मित संग्रह की अवधारणा है।

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

कई उपकरण को .tar.gz या .tar.bz2 के रूप में स्रोत या द्विआधारी रूप में वितरित किया जाता है, क्योंकि यह एक "सबसे सामान्य सामान्य भाजक" फ़ाइल स्वरूप है: बहुत से अधिकांश विंडोज उपयोगकर्ताओं के पास .zip या .rar decompressors, अधिकांश लिनक्स प्रतिष्ठानों तक पहुंच होती है। यहां तक ​​कि सबसे बुनियादी, कम से कम tarऔर gunzip, कोई फर्क नहीं पड़ता कि कितना पुराना है या नीचे तक पहुंच होगी । यहां तक ​​कि एंड्रॉइड फर्मवारों के पास इन उपकरणों तक पहुंच है।

आधुनिक वितरणों को चलाने वाले दर्शकों को लक्षित करने वाली नई परियोजनाएं अधिक आधुनिक प्रारूप में वितरित हो सकती हैं, जैसे कि .tar.xz(Xz ( LZMA ) संपीड़न प्रारूप का उपयोग करके , जो कि gzip या bzip2 से बेहतर संपीड़ित करता है), या .7z, जो कि ZIP या RAR के समान है। इसमें फाइल फॉर्मेट दोनों को एक ही फाइल में कई फाइलों को एनकैप्सुलेट करने के लिए लेआउट को कंप्रेस और निर्दिष्ट करता है।

आप .7z को अधिक बार उसी कारण से उपयोग नहीं करते हैं , जैसा कि ओपस , या वेबएम में वीडियो जैसे नए स्वरूपों में ऑनलाइन डाउनलोड स्टोर से संगीत नहीं बेचा जाता है । प्राचीन या बहुत बुनियादी प्रणालियों को चलाने वाले लोगों के साथ संगतता महत्वपूर्ण है।


7
हाय @ क्रूग, मैंने आपकी पोस्ट को सिर्फ एक व्यावहारिक परिप्रेक्ष्य देने के लिए संपादित किया कि क्यों लोग अभी भी इन प्रारूपों का उपयोग करना चुनते हैं जब उनके पास कुछ और उपयोग करने का विकल्प होता है। मैंने आपके पास पहले से मौजूद टेक्स्ट को नहीं बदला। यह केवल यह सुनिश्चित करने के लिए है कि इस प्रश्न का विहित उत्तर क्या प्रतीत होता है, इसकी पूरी तस्वीर होगी। यदि आप चाहते हैं तो मेरा संपादन संपादित करने के लिए स्वतंत्र महसूस करें :)
allquixotic

5
@allquixotic किसी की स्थापना? का संपादन संपादित करें और संपादित करें ताकि आप एक संपादन संपादित कर सकें ...
स्नेकडॉक

21
यह उत्तर निश्चित रूप से "मैं कभी-कभी अवांछित उत्थान द्वारा उड़ा दिया जाता है" का मामला है। यह प्रश्न के मुख्य मुद्दे को संबोधित नहीं करता है जो संकुचित टार की सामग्री को सूचीबद्ध करने के साथ है और यह एक मूल उत्तर भी नहीं है!
урослав Рахматуллин

5
-1 महान न्याय के लिए। यह एक टिप्पणी होनी चाहिए थी।
विम

6
मैं विरासत / सबसे कम आम भाजक तर्क नहीं खरीदता; मुझे याद है कि नए सिस्टम (सूरज) पर अक्सर gzip / gunzip (sunfreeware से) डाउनलोड करने के लिए सिर्फ अन्य tar.gz पैकेज्ड सॉफ्टवेयर (प्लस gnu tar, क्योंकि सूरज का टार चूसा जाता है) को डाउनलोड करना पड़ता है। विरासत / निचले-आम भाजक के लिए, आपके पास tar.Z(संपीड़ित / अनसैप्टर) था। उपयोगिताओं की प्रगति परिवर्तन और सुधार की एक निरंतर धारा (कोई भी उद्देश्य नहीं) है: Z => zip => gz => bz2 => 7z => xz (या जो भी आदेश आप चाहें)। टार की भूमिका के लिए, कुछ बर्तन संयुक्त राष्ट्र / केवल संपीड़ित करते हैं, और अभी भी फ़ाइल पदानुक्रम को बंडल करने के लिए टार की आवश्यकता होती है।
माइकल

63

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

  • क्या आप निकाले गए डेटा को फ़ाइल एक्सेस बार संरक्षित करना चाहते हैं? टार वह कर सकता है। अनुमतियाँ संरक्षित करने के लिए? टार वह कर सकता है।

  • क्या आप प्रतीकात्मक लिंक को प्रतीकात्मक लिंक के रूप में संरक्षित करना चाहते हैं? टार डिफ़ॉल्ट रूप से करता है। इसके बजाय लक्ष्य को कॉपी करना चाहते हैं? टार वह कर सकता है।

  • क्या आप यह सुनिश्चित करना चाहते हैं कि हार्डलिंक डेटा केवल एक बार संग्रहीत किया जाता है (यानी, सही काम करने के लिए)? टार करता है।

  • क्या आप विरल फ़ाइलों को अच्छी तरह से संभालना चाहते हैं? टार वह कर सकता है।

  • क्या आप असम्पीडित डेटा (क्यों?) चाहते हैं टार वह कर सकता है। गज़िप के साथ सेक करने के लिए? टार वह कर सकता है। Bzip2 के साथ? टार वह कर सकता है। मनमाना बाह्य संपीड़न कार्यक्रमों के साथ? टार वह कर सकता है।

  • क्या आप एक कच्चे उपकरण से लिखना या पुनर्प्राप्त करना चाहते हैं? टार का प्रारूप उस ठीक को संभालता है।

  • क्या आप किसी मौजूदा संग्रह में फ़ाइलें जोड़ना चाहते हैं? टार वह कर सकता है। क्या बदल गया है यह देखने के लिए दो संग्रह को फैलाने के लिए? टार वह कर सकता है। संग्रह के केवल उन हिस्सों को अपडेट करने के लिए जो बदल गए हैं? टार वह कर सकता है।

  • क्या आप यह सुनिश्चित करना चाहते हैं कि आप एक से अधिक फाइल सिस्टम में संग्रह न करें? टार वह कर सकता है।

  • क्या आप केवल उन फ़ाइलों को हथियाना चाहते हैं जो आपके पिछले बैकअप की तुलना में नई हैं? टार वह कर सकता है।

  • क्या आप उपयोगकर्ता और समूह के नाम या संख्या को संरक्षित करना चाहते हैं? टार या तो एक कर सकते हैं।

  • क्या आपको डिवाइस नोड्स (जैसे फाइलों में /dev) को संरक्षित करने की आवश्यकता है ताकि निष्कर्षण के बाद, सिस्टम सही ढंग से चले? टार वह कर सकता है।

टार दशकों से बहुत सारे और उपयोग के मामलों को संभालने के लिए विकसित हो रहा है और वास्तव में उन चीजों के बारे में बहुत कुछ जानता है जो लोग यूनिक्स फाइलसिस्टम के साथ करना चाहते हैं।


12
आपको मनमाने ढंग से कंप्रेसर का उपयोग करने के लिए GNU टार की आवश्यकता नहीं है: बस टार को ट्रेसआउट को लिखने के लिए लिखें f -और इसे कंप्रेसर पर पाइप करें।
इल्मरी करोनन

3
"क्या आप असम्पीडित डेटा (क्यों?) चाहते हैं?" मैं tarएक फाइल सिस्टम ट्री को एक जगह से दूसरी जगह कॉपी करने और परमिशन, आदि को संरक्षित करने के लिए बहुत बार इस्तेमाल करता हूं और इस मामले में कम्प्रेशन सिर्फ अतिरिक्त सीपीयू साइकिल लेता है। जैसे tar cf - * | tar xf - -C /somewhere
स्टीव

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

@Steve CPU चक्र एलओ 4 या एलजेडओ जैसे एल्गोरिदम के लिए डिस्क आईओ से सस्ता हो सकता है। यही कारण है कि वे zram में उपयोग किया जाता है, और NTFS, ZFS, Btrfs जैसे पारदर्शी संपीड़न फ़ाइल सिस्टम ... इसलिए कभी-कभी यह वास्तव में सेक करने की तुलना में तेज़ होता है क्योंकि डिस्क IO की मात्रा बहुत कम हो जाती है
phuclv

30

आप संग्रह और संपीड़न की दो विशिष्ट प्रक्रियाओं को भ्रमित करते हैं ।

एक अभिलेखागार का उपयोग करने के कारण

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

tar cf - some_directory | ssh host "(cd ~/somewhere | tar xf -)"

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

गज़िप संपीड़न के साथ एक अभिलेखागार का उपयोग करने के कारण

एक कारण है कि मैं के tarसाथ प्रयोग gzipहै: गति! अगर मैं पाठ फ़ाइलों के कुछ GiB को एक स्थान से दूसरे स्थान पर स्थानांतरित करना चाहता हूं, तो मुझे अंतिम बाइट्स को निचोड़ने की परवाह नहीं है, क्योंकि संपीड़न केवल पारगमन के लिए उपयोग किया जाता है, दीर्घकालिक भंडारण के लिए नहीं। उन मामलों में मैं उपयोग gzipकरता हूं , जो सीपीयू को अधिकतम नहीं करता है ( उदाहरण के लिए 7-ज़िप के विपरीत ), जिसका अर्थ है कि मैं I / O फिर से बाध्य हूं और सीपीयू बाध्य नहीं है। और फिर से: gzipहर जगह उपलब्ध माना जा सकता है।

उपयोग करने के कारण tarके पक्ष में scp, rsyncआदि

यह धड़कता है scpयदि आपके पास कॉपी करने के लिए बहुत सारी छोटी फाइलें हैं (उदाहरण के लिए, सौ हजारों फाइलों के साथ एक मेल निर्देशिकाएं)। rsync, भयानक, जैसा कि यह है, हर जगह उपलब्ध नहीं हो सकता है। इसके अलावा, rsyncकेवल वास्तव में भुगतान करता है अगर फ़ाइलों का हिस्सा - या एक पुराने संस्करण- - पहले से ही गंतव्य पर मौजूद है। tarवास्तविक डेटा पर निर्भर करते हुए, प्रारंभिक प्रतिलिपि संपीड़न या बिना सबसे तेज़ है।


1
लेकिन अगर आप संग्रह करने जा रहे हैं, तो क्यों नहीं संक्षिप्त करें? ठीक है, हाँ, यह उन फ़ाइलों के लिए समय बचा सकता है जो आसानी से संपीड़ित नहीं होती हैं, लेकिन फिर आर्काइवर्स को शायद यह जानना चाहिए कि उदाहरण के लिए संगीत, बहुत संक्षिप्त नहीं हैं, सिवाय हेडर के।
मार्कस जे १४'१३ को

2
आपको इसकी आवश्यकता नहीं हो सकती है, या आपकी सामग्री संपीड़ित नहीं हो सकती है।
१६:०४ पर हस्त्कर्ण

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

3
न केवल यह तेजी से बढ़ रहा है, बल्कि यह फ़ाइल स्वामित्व, टाइमस्टैम्प और विशेषताओं को संरक्षित करने की भी अनुमति देता है (यदि उपयोगकर्ता विशेषाधिकार इसे अनुमति देते हैं)
आंद्रे होल्ज़नर

3
@AndreHolzner राइट। मैं अक्सर करता हूं tar cf - . | (cd ~/somewhere; tar xvf -)। केंद्रीय सूचकांक के लिखे जाने तक प्रतीक्षा न करना वास्तव में उपयोगी है (उदाहरण के लिए ज़िप फ़ाइल में)।
user239558

24

अन्य अच्छे उत्तरों को यहां जोड़ते हुए, मैं संयोजन tar+ को gzip|bzip2|xzमुख्य रूप से पसंद करता हूं क्योंकि ये संकुचित फाइलें स्ट्रीम की तरह हैं, और आप उन्हें आसानी से पाइप कर सकते हैं।

मुझे इंटरनेट में उपलब्ध एक फ़ाइल को खोलना होगा। या तो साथ zipया rarप्रारूपों मैं यह पहली बार डाउनलोड करने के लिए है और फिर उसे असंपीड़ित। साथ tar.{gz,bz2,xz}मैं डिस्क पर संकुचित संग्रह phisically होने के लिए डाउनलोड करने और एक ही चरण में को विस्तारित कर सकते हैं, आवश्यकता के बिना:

curl -s http://example.com/some_compressed_file.tar.gz | tar zx

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


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

3
@psusi गलत आप इस तरह से हैक कर सकते हैं , लेकिन यह क्या करता है कि सभी फाइल को मेमोरी में डाउनलोड करें और फिर डाउनलोड करने के बजाय अनजिप करें। और funzipसिर्फ पहली फाइल जिपफाइल में ही निकाली जाती है, सभी में नहीं।
कार्लोस कैंपडरो ने

2
@Stu सिर्फ स्पष्ट करने के लिए, एक मुद्दा नहीं है, बस अपने समय का अनुकूलन कर रहा है (अगर आपको लगता है कि मैं अंतरिक्ष के बारे में परवाह नहीं करता हूं)
कार्लोस कैंपड्रेस

1
दोनों पक्ष काम करते हैं: आप एक तरफ टार कर सकते हैं और दूसरे में अनटार भी कर सकते हैं:tar zc /some/folder | ssh user@host "cd /other/folder && tar zx"
कार्लोस कैंपड्रेस

1
@psusi जैसा कि मुझे पुराने समय से याद है जब संग्रह के अंत में कई फ्लॉपीज़, ज़िप स्टोर कैटलॉग पर फ़ाइलों को संग्रहीत करने के लिए pkzip का उपयोग किया जाता है। यह हमेशा निष्कर्षण या शो कैटलॉग के लिए अंतिम फ्लॉपी का अनुरोध करता है। तो en.wikipedia.org/wiki/File:ZIP-64_Internal_Layout.svg
मिखाइल मोस्कलेव

13

(GNU) टार के साथ छड़ी करने के कई कारण हैं।

यह है:

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

यदि आपका विशेष गोमांस सामग्री को पढ़ने में सक्षम होने से पहले एक टारबॉल को "डीकंप्रेस" करने के साथ है, तो आप शायद सही हैं। WinRAR और 7-ज़िप इसे स्वचालित रूप से करते हैं। हालाँकि, इस समस्या के लिए सरल वर्कअराउंड हैं जैसे कि संग्रह की सामग्री को असम्पीडित रूप में दस्तावेज करना।


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

4
यूनिक्स देवताओं ने इसे बनाया है - इसलिए हमें इसका उपयोग करना चाहिए!
स्नेकडॉक

28
टार भी UNIX अनुमतियों को मूल रूप से संग्रहीत करता है, और बहुत अच्छी तरह से जाना जाता है और परीक्षण किया जाता है। वहाँ कुछ उदाहरणों से अधिक है जहाँ किसी को एक फ़ाइल या स्ट्रीम में फ़ाइलों का एक गुच्छा ग्लोब करना पड़ सकता है, लेकिन जरूरी नहीं कि इसे संकुचित करें।
लॉरेंस

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

1
मैं व्यंग्यात्मक नहीं हूं। मुझे आरएमएस पसंद है और जिस तरह से वह अपने विश्वास को आगे बढ़ाता है।
урослав Рахматуллин

11

फ़ाइल स्वरूप जैसे .zip को फ़ाइल नाम के कैटलॉग को पढ़ने के लिए सॉफ़्टवेयर को पहले फ़ाइल के अंत में पढ़ने की आवश्यकता होती है। इसके विपरीत, टार उस जानकारी को संपीड़ित स्ट्रीम के साथ संग्रहीत करता है।

टार तरीके का लाभ यह है कि आप डेटा को एक गैर-खोज योग्य पाइप से पढ़ने से रोक सकते हैं, जैसे कि नेटवर्क सॉकेट।

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

दोनों के अपने उपयोग हैं, जो आप कर रहे हैं उसके आधार पर।


5
नहीं, आप ज़िप फ़ाइलों को स्ट्रीम से और पाइप के रूप में पढ़ और लिख सकते हैं।
मार्क एडलर

यह कार्यान्वयन-विशिष्ट हो सकता है, तो यह निश्चित रूप से मूल pkzip द्वारा समर्थित नहीं है।
xorsyst

1
हां, इसके समर्थन के लिए सॉफ्टवेयर को लिखना होगा। ज़िप प्रारूप पूरी तरह से डेटा डिस्क्रिप्टर के साथ इसका समर्थन करता है जो लंबाई और सीआरसी के साथ संपीड़ित डेटा का पालन कर सकता है।
मार्क एडलर

@MarkAdler, क्या सॉफ्टवेयर? Infozip एक पाइप से unzipping का समर्थन नहीं करता है।
Psusi


11

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

क्या gzip या bzip2 में इनकैप्सुलेटेड टार का उपयोग करने के लिए एकत्रीकरण / संपीड़न / अपघटन चरणों के दौरान एक प्रदर्शन जुर्माना है, जब एक फ़ाइल स्वरूप का उपयोग करने की तुलना में होता है जो समान डेटा संरचना में एकत्रीकरण और संपीड़न करता है? तुलना करने वाले कंप्रेसर के रनटाइम समान है (उदाहरण के लिए gzip और Deflate समान हैं)।

वास्तव में, चूंकि टार और गज़िप आमतौर पर दो प्रक्रियाएँ हैं, इसलिए आपको मल्टी-कोर स्पीड लाभ का एक स्माइली भी मिलता है, जो कि इन्फो-जिप जैसी ज़िप प्रदान नहीं करता है। संपीड़न अनुपात के संदर्भ में, टार + गज़िप आमतौर पर अपस्फीति के साथ ज़िप से बेहतर होगा क्योंकि पूर्व फाइलों के बीच सहसंबंध से लाभ उठा सकता है, जबकि बाद वाली फाइलें अलग-अलग संपीड़ित करती हैं। कम समय में अधिक संपीड़ित संग्रह विघटित होने के बाद से कम्प्रेशन लाभ एक गति लाभ में तब्दील हो जाता है।

क्या टार फ़ाइल प्रारूप की विशेषताएं हैं जो अन्य फ़ाइल प्रारूप, जैसे कि .7z और .zip में नहीं हैं?

हाँ, टार को यूनिक्स के लिए डिज़ाइन किया गया था, और यह पिछले कुछ वर्षों में विकसित हुआ है, जो यूनिक्स फ़ाइल सिस्टम के हर विषम छोटे नुक्कड़ और क्रैनी को रिकॉर्ड करने में सक्षम है, यहाँ तक कि नुक्कड़ और क्रैनियर मैक ओएस एक्स यूनिक्स फाइल सिस्टम भी। जिप मेटाडेटा की बहुत सारी अनुमति जैसे कि समय, मालिक, समूह और प्रतीकात्मक लिंक को बनाए रखने में सक्षम है, लेकिन फिर भी सब कुछ नहीं है। एक उदाहरण के रूप में, न तो ज़िप और न ही 7z विरल फ़ाइलों का लाभ उठा सकते हैं या पहचान सकते हैं, और न ही वे कठिन लिंक को पुनर्स्थापित करने में सक्षम हैं या नहीं जानते हैं।

चूंकि टार इतना पुराना फ़ाइल स्वरूप है, और नए फ़ाइल स्वरूप आज भी मौजूद हैं, इसलिए टार (चाहे वह gzip, bzip2 या यहाँ तक कि नए xz में अभी भी इतने व्यापक रूप से इस्तेमाल किया गया है) आज भी GNU / Linux, Android, BSD और ऐसे अन्य UNIX पर उपयोग किया जाता है ऑपरेटिंग सिस्टम, फाइल ट्रांसफर, प्रोग्राम सोर्स और बाइनरी डाउनलोड के लिए, और कभी-कभी पैकेज मैनेजर फॉर्मेट के रूप में भी?

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

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


सीडब्ल्यू का मतलब कम्युनिटी विकी है । यह भी देखें कि "कम्युनिटी विकी" पोस्ट क्या हैं?
ctype.h

मुझे लगता है कि यह सीडब्ल्यू है क्योंकि प्रश्न के 15 से अधिक उत्तर हैं। जब आपने इस उत्तर को पोस्ट किया, क्योंकि यह 15 वां है, तो प्रश्न और सभी उत्तरों को सीडब्ल्यू चिह्नित किया गया था।
ctype.h

मैं यह देखने में विफल हूं कि यह उत्तर कुछ ऐसा कैसे कहता है जो कोई भी अन्य प्रश्न नहीं करता है, सीधे प्रश्नों को उद्धृत करने के अलावा (जो मैंने लिखा था, BTW, क्योंकि प्रश्न का मूल संशोधन NARQ के रूप में बंद होने के लिए काफी भयानक था)। हालांकि, कोशिश अच्छी थी।
१०:१३

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

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

11

प्रदर्शन

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

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

लोकप्रियता

वहाँ अन्य स्वरूपों के बहुत सारे फायदे हैं tar7-ज़िप यूनिक्स फ़ाइल अनुमतियों को संग्रहीत नहीं करता है, लेकिन darकरता है, और zipकर सकता है, और तीनों एक इंडेक्स को संग्रहीत करते हैं, जो तेज ब्राउज़िंग, फ़ाइलों के सबसेट की निकासी और संग्रह के भीतर फ़ाइलों को अपडेट करने की अनुमति देता है। वे संपीड़न के लिए मल्टी-कोर सीपीयू का भी उपयोग कर सकते हैं।

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


2
ज़िप अनिक्स अनुमतियों को संग्रहीत और पुनर्स्थापित कर सकता है। InfoZIP से आम तौर पर यूनिक्स प्रणाली के साथ वितरित ज़िप और अनज़िप उपयोगिताओं यह करता है।
मार्क एडलर

3
ज़िप 32K चंक्स में फ़ाइल को संपीड़ित नहीं करता है। आप संपीड़न कैसे किया जाता है के साथ 32K के स्लाइडिंग विंडो आकार को भ्रमित कर रहे हैं।
मार्क एडलर

1
gzip -9 में 900 kB शब्दकोश नहीं है। Gzip के सभी स्तरों में एक 32K शब्दकोश का उपयोग किया जाता है। आप bzip2 के बारे में सोच रहे होंगे।
मार्क एडलर

एक उत्तर में इतनी गलत सूचना।
मार्क एडलर

1
आपको अपने उत्तर में सुधार करने या अपने उत्तर को हटाने की आवश्यकता है।
मार्क एडलर

7

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

इसमें ये सभी विशेषताएं शामिल हैं जो एक या अधिक प्रतिस्पर्धी टूल में गायब हैं:

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

इसमें --one-file-systemविकल्प भी है जो बैकअप बनाते समय असाधारण रूप से उपयोगी है।

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


यह उत्तर एकमात्र है जो समझ में आता है। इसे पोस्ट करने के लिए धन्यवाद।
गाबोरस

5

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

न केवल एक संपीड़ित फ़ाइल को संपीड़ित करने का प्रयास करने के लिए समय और बिजली बर्बाद होती है, बल्कि यह अक्सर एक फ़ाइल का परिणाम होता है जो मूल से बड़ा होता है।

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

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


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

एक मनोरंजक अपवाद यह है कि स्पष्ट कारणों के लिए gzip स्रोत कोड एक नग्न टार के रूप में उपलब्ध है।
मार्क एडलर

4

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

जैसा कि मैं समझता हूं कि इसके ऐतिहासिक कारण हैं (OS इतिहास से संबंधित, पेटेंट "संरक्षण", सॉफ्टवेयर बेचने की क्षमता के लिए उपकरण बेचने आदि)।

अब, जैसा कि अन्य प्रतिक्रिया ने बताया कि अभी भी टार अन्य समाधानों से स्पष्ट रूप से नीच नहीं है और अन्य पहलुओं पर बेहतर हो सकता है जैसे कि धाराओं या यूनिक्स अधिकार प्रबंधन पर काम करने की क्षमता।

यदि आप टार के बारे में विकिपीडिया लेख पढ़ते हैं तो आप एक और दिलचस्प तथ्य देख सकते हैं। लेख ने टार की कुछ कमियों को स्वीकार किया ... लेकिन इसके बजाय ज़िप का उपयोग करने का सुझाव नहीं दिया (वास्तव में ज़िप प्रारूप इन कमियों को हल नहीं करता है) लेकिन डीएआर।

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


3

मुझे आश्चर्य है कि किसी ने भी इसका उल्लेख नहीं किया है, लेकिन एक कारण - वास्तव में एक फायदा नहीं है, लेकिन एक आवश्यकता है- बैकवर्ड संगतता। दशकों से सॉफ्टवेयर चलाने वाले बहुत सारे सिस्टम हैं जो शायद tarसंग्रह करने के लिए कह सकते हैं । सभी पुरानी प्रणालियों को "ठीक" करने के लिए किसी को किराए पर लेना प्रभावी नहीं है।


3

टार UNIX है क्योंकि UNIX टार है

मेरी राय में आज भी इसका उपयोग करने का कारण tarयह है कि यह (शायद दुर्लभ) मामलों में से एक है, जहां यूनिक्स दृष्टिकोण अभी शुरू से ही पूरी तरह से सही है।

अभिलेखागार बनाने में शामिल चरणों पर एक नज़र डालते हुए मुझे आशा है कि आप सहमत होंगे कि जिस तरह से विभिन्न कार्यों का पृथक्करण यहां होता है वह यूनिक्स दर्शन अपने सबसे अच्छे रूप में है:

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

  • और बस एक और मनमाने ढंग से विनिमेय उपकरण ( gzip bz2 xzसिर्फ कुछ विकल्पों के नाम पर) जो बाइट्स के किसी भी इनपुट स्ट्रीम को दूसरे (उम्मीद) छोटे आउटपुट स्ट्रीम में बदल देता है।

ऐसे और एप्रोच के उपयोग से उपयोगकर्ता को और साथ ही डेवलपर को पूरे लाभ मिलते हैं:

  • एक्स्टेंसिबिलिटी किसी भी कम्प्रेशन अल्गोरिथम के tarसाथ जोड़े जाने की वजह से पहले से मौजूद या किसी भी कम्प्रेशन अल्गोरिथम को अभी भी विकसित किया जा सकता है, बिना इन सब के अंदरूनी कामकाज पर कुछ भी बदलाव किए बिनाtar

    जैसे ही सभी ब्रांड के नए "हाइपर-जिप-यूट्रा" या व्हायर कम्प्रेशन टूल सामने आए, आप अपने नए नौकर को पूरी शक्ति के साथ गले लगाने के लिए पहले से ही तैयार हैं tar

  • tar80 के दशक की शुरुआत से ही स्थिरता का भारी उपयोग हो रहा है और इसे कई ऑपरेटिंग सिस्टम और मशीनों पर चलाया जा रहा है।

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

  • स्थिरता उपयोगकर्ता इंटरफ़ेस बस हर समय एक ही रहता है।

    यह याद रखने की कोई आवश्यकता नहीं है कि टूल ए का उपयोग करके अनुमतियों को पुनर्स्थापित करने के लिए आपको विकल्प --i-hope-you-rember-this-oneबी पास करना होगा और टूल बी का उपयोग --this-time-its-another-one करते समय आपको टूल सी का उपयोग करना होगा।

    जबकि उपकरण डी का उपयोग करने में यदि आप उपयोग नहीं करते हैं तो आप वास्तव में इसे गड़बड़ कर देंगे --if-you-had-used-tool-bs-switch-your-files-would-have-been-deleted-now


3

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


वास्तव में अच्छी टिप्पणी, मैंने भी ऐसा नहीं सोचा था, और यह वास्तव में एक अच्छा बिंदु है।
मार्कस जे

3

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

मैं 7-ज़िप, RAR या कुछ और के बारे में नहीं सुनना चाहता। अगर मुझे आपकी फ़ाइल को अनलॉक्ड करने के लिए एक प्रोग्राम स्थापित करना है, तो वह काम है। अगर यह मेरे द्वारा भुगतान किया जा रहा है, या अगर सामग्री ऐसी चीज है जो मैं "मेरे पास" है और किसी अन्य तरीके से उपलब्ध नहीं है, तो मैं इसे करूंगा।

टार का एक फायदा यह है कि यदि आप किसी को टैरबॉल भेजते हैं, तो यह तुरंत पहचाना जाता है। प्राप्तकर्ता मांसपेशी मेमोरी का उपयोग करके निष्कर्षण कमांड टाइप कर सकता है।

असली सवाल यह है: क्यों कुछ लोग अंतरिक्ष के एक और बाइट को बचाने के लिए इतने जुनूनी हैं कि वे बाकी सभी को कुछ विदेशी उपयोगिता स्थापित करने और इसे उपयोग करने का तरीका सीखने में समय बर्बाद करने के लिए कहते हैं? और फिर विदेशी संपीड़न और संग्रह प्रारूपों के बेवकूफ उपयोग हैं। क्या AAC ध्वनि के साथ H.264 वीडियो को वास्तव में बहु-भाग RAR में डालने की आवश्यकता है?

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


पुन: "इतना जुनूनी" ... कल्पना कीजिए कि आप एक एकल कठोर लैपटॉप के साथ वारज़ोन में फंसे हुए हैं, और अंडरस्क्राइब्ड 20 जी हार्ड ड्राइव के लगभग पूर्ण, शायद एक गिग छोड़ दिया है, और दूर से गोलियों की आवाज़ सुनकर, आप वास्तव में ब्राउज़ करना चाहेंगे एक 100MB .PDF मैनुअल जो दिखाता है कि जीप को कैसे ठीक किया जाए, लेकिन फाइल 2 गिग .tgz फाइल में है। और लैपटॉप एक बंद स्रोत अजीब मालिकाना ओएस चलाता है, और आपके पास सिस्टम फ़ाइलों को हटाने के लिए रूट एक्सेस नहीं है, यह नहीं कि यह स्पष्ट होगा कि खोजकर्ता या पीडीएफ दर्शक को तोड़ने के बिना 4 जी + कैसे हटाएं। अगर आप उस 100MB फ़ाइल को निकाल सकते हैं ...
agc

2

आपके द्वारा प्रस्तुत विशिष्ट प्रश्नों के सीधे उत्तर देना:

क्या gzip या bzip2 में इनकैप्सुलेटेड टार का उपयोग करने के लिए एकत्रीकरण / संपीड़न / अपघटन चरणों के दौरान एक प्रदर्शन जुर्माना है, जब एक फ़ाइल स्वरूप का उपयोग करने की तुलना में होता है जो समान डेटा संरचना में एकत्रीकरण और संपीड़न करता है? तुलना करने वाले कंप्रेसर के रनटाइम समान है (उदाहरण के लिए gzip और Deflate समान हैं)।

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

  • बड़ी संख्या में अपेक्षाकृत छोटी फ़ाइलों को संसाधित करते समय, विशेष रूप से सॉफ्टवेयर को वितरित करने में उपयोग किए जाने वाले, उच्च अतिरेक होता है। व्यक्तिगत फ़ाइलों को संपीड़ित करने की तुलना में कई फ़ाइलों पर अधिक समग्र संपीड़न का परिणाम होता है। और "डिक्शनरी" की गणना इनपुट के हर भाग के लिए एक बार की जाती है, प्रत्येक फ़ाइल के लिए नहीं।

  • tarफाइल सिस्टम को समझता है। यह एक कामकाजी / काम करने योग्य ऑपरेटिंग सिस्टम को बचाने और पुनर्स्थापित करने के लिए डिज़ाइन किया गया है। यह गहराई से वास्तव में एक UNIX फाइल सिस्टम पर महत्वपूर्ण है, और विश्वासपूर्वक कब्जा कर लेता है और पुनर्स्थापित करता है। अन्य उपकरण ... हमेशा नहीं, विशेष रूप से ज़िप परिवार, जो ओएस के एक परिवार के बीच फ़ाइलों को साझा करने के लिए बेहतर रूप से डिज़ाइन किया गया है, जहां दस्तावेज़ एक महत्वपूर्ण बात है, न कि वफादार ओएस संवेदनशील प्रति।

क्या टार फ़ाइल प्रारूप की विशेषताएं हैं जो अन्य फ़ाइल प्रारूप, जैसे कि .7z और .zip में नहीं हैं?

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

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

चूंकि टार इतना पुराना फ़ाइल स्वरूप है, और नए फ़ाइल स्वरूप आज भी मौजूद हैं, इसलिए टार (चाहे वह gzip, bzip2 या यहाँ तक कि नए xz में अभी भी इतने व्यापक रूप से इस्तेमाल किया गया है) आज भी GNU / Linux, Android, BSD और ऐसे अन्य UNIX पर उपयोग किया जाता है ऑपरेटिंग सिस्टम, फाइल ट्रांसफर, प्रोग्राम सोर्स और बाइनरी डाउनलोड के लिए, और कभी-कभी पैकेज मैनेजर फॉर्मेट के रूप में भी?

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

सबसे महत्वपूर्ण सवाल, मुझे लगता है, कि आपने नहीं पूछा, क्या 'टार' नौकरियों के लिए अनुकूल है।

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

तो ... आप जिस वातावरण को देख रहे हैं उसमें कितना शोर और भ्रष्टाचार है, और क्या स्रोत का उपयोग किसी असफल संग्रह को पुन: उत्पन्न करने के लिए किया जा सकता है? उत्तर, आपके द्वारा प्रदान किए गए सुराग से, यह है कि सिस्टम शोर नहीं है, और वह स्रोत एक संग्रह को पुन: उत्पन्न करने में सक्षम है। जो मामले में, tarपर्याप्त है।

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


-3

TAR टेप आर्काइव है। यह दशकों से आसपास है और इसका व्यापक रूप से उपयोग और समर्थन किया जाता है। यह एक परिपक्व उत्पाद है और मौजूदा जरूरतों के साथ-साथ विरासत का भी ख्याल रखता है।

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