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


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

प्रशन:

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

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

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


206
2018-03-14 14:33


मूल


मैं असहमत हूं कि यह "समय बर्बाद" करता है। यदि आपका मतलब प्रदर्शन है, तो टैर के लिए कोई वास्तविक प्रदर्शन जुर्माना नहीं है क्योंकि प्रारूप बहुत ही कुशल है। यदि आपका मतलब यह कचरा है तुंहारे समय, मैं नहीं देखता कि कैसे tar xvzf से कठिन है 7z -x... - Horn OK Please
वह इस तथ्य को शोक करते हुए प्रतीत होता है कि टैर शुरुआत में एक कैटलॉग स्टोर नहीं करता है, इसलिए गुई संपीड़न उपकरण जो निकालने से पहले सामग्री को सूचीबद्ध करना चाहते हैं, केवल सामग्री को सूचीबद्ध करने के लिए पूरे टैर को डिकंप्रेस करना है, फिर निकालने के दौरान वे फिर से इसे कम कर देते हैं । - psusi
@MarcusJ: आपको लगता है कि 7z किसी भी तरह जादुई रूप से जानता है कि प्रत्येक फ़ाइल एक संग्रह में कहां से शुरू होती है? इसके अलावा, सामान्य संपीड़न एल्गोरिदम (gzip, bzip2) सामग्री स्ट्रीमिंग के साथ काम करते हैं: अगले से पहले 100% पहले चरण को पूरा करने की आवश्यकता नहीं है। - progo
इसके अलावा @MarcusJ आप दो अलग-अलग चीजों को भ्रमित कर रहे हैं: जब आप करते हैं tar xvzfअसम्पीडित डेटा नहीं है हार्ड डिस्क में लिखा है .tar प्रारूप! आप सही हैं कि अगर आप भाग गए gunzip blah.tar.gz और फिर tar xf blah.tar, यह डेटा को डिस्क पर दो बार लिखता है (एक बार .tar के रूप में और फिर फाइल सिस्टम में फाइलों के रूप में), लेकिन वास्तव में कोई भी ऐसा नहीं करता है। tar xzf एक का उपयोग करता है यूनिक्स पाइप (मूल रूप से एक स्मृति प्रतिलिपि) से असंपीड़ित डेटा स्थानांतरित करने के लिए gzip (या जो भी कंप्रेसर) करने के लिए tar, तो डेटा है नहीं डिस्क में लिखा है .tar प्रारूप। - Horn OK Please
एक बात मुझे पता है कि tar (विशेष रूप से संकुचित) डेटा भ्रष्टाचार की बात आती है जब वह बहुत व्यवहार करता है। आधुनिक प्रारूपों द्वारा जोड़ा गया छोटा अनावश्यक / पुनर्प्राप्ति डेटा सोने के लायक है - PPC


जवाब:


भाग 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 जीबी डेटा और मेटाडेटा लिखें। इसमें शामिल है: डिस्क पर नई फाइलें और निर्देशिका बनाने के लिए डेटा संरचना / मेटाडेटा जानकारी का अनुवाद करना, या नई डेटा सामग्री के साथ मौजूदा फ़ाइलों और निर्देशिकाओं को फिर से लिखना।

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

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

रास्ता 2

आपके पास blah.tar.gz, इस तरह या किसी और तरह।

आप दौड़ने का फैसला करते हैं:

tar xvzf blah.tar.gz

यह करेगा

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

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

कुल डेटा हम लिखा था इस प्रक्रिया में डिस्क के लिए 2 जीबी असंपीड़ित डेटा + मेटाडेटा = लगभग 2 जीबी के लिए कुछ बाइट्स था।

यदि आप ध्यान दें, डिस्क I / O की मात्रा में रास्ता 2 है समान डिस्क I / O द्वारा निष्पादित, कहें, Zip या 7-Zip संपीड़न अनुपात में किसी भी अंतर के लिए समायोजन, कार्यक्रम।

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

भाग 2: विशेषताएं

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

भाग 3: संगतता

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

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

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


175
2018-03-14 17:09



तीन अलग-अलग शीर्षकों के तहत विभाजित सभी सामग्री के साथ महान उत्तर के लिए Kudos। - JFW
प्रतीत होता है कि "भाग 3: संगतता" को @ क्रुग के उत्तर से कॉपी किया गया प्रतीत होता है। - titaniumdecoy
@titaniumdecoy क्या आपने देखा है कि यह सर्वव्यापी था जिसने मूल रूप से उस हिस्से को लिखा और इसे क्रुग के जवाब में संपादित किया? - slhck
इसे इंगित करने के लिए धन्यवाद, मैंने नोटिस नहीं किया। हालांकि, इस पृष्ठ पर दो अलग-अलग उत्तरों में टेक्स्ट का एक समान ब्लॉक रखने के लिए मुझे थोड़ा मूर्ख लगता है। - titaniumdecoy
यह जवाब क्यों देता है tar संग्रह पारिस्थितिकी तंत्र में फिट बैठता है (यानी, एक साथ फाइलों को एकत्रित करने, प्रदर्शन को बढ़ावा देने और अनुमतियों की बचत जैसे कुछ अन्य लाभ), लेकिन यह पता नहीं चलता कि आधुनिक विकल्प जैसे कि dar जगह में उपयोग नहीं किया जाता है। दूसरे शब्दों में, यह उत्तर फाइल एग्रीगेटर्स के उपयोग को औचित्य देता है, लेकिन नहीं tar अपने आप में सॉफ्टवेयर। - gaborous


इस स्टैक ओवरफ़्लो पर उत्तर दिया गया है

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

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

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

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

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


101
2017-08-19 08:50



हाय @ क्रुग, मैंने आपकी पोस्ट को सिर्फ व्यावहारिक परिप्रेक्ष्य देने के लिए संपादित किया है कि लोग अभी भी क्यों हैं चुनें इन प्रारूपों का उपयोग करने के लिए जब उनके पास कुछ और उपयोग करने का विकल्प होता है। मैंने आपके पास पहले से मौजूद पाठ को नहीं बदला है। यह सुनिश्चित करने के लिए है कि इस प्रश्न के कैननिकल उत्तर के रूप में क्या लगता है पूर्ण तस्वीर होगी। यदि आप चाहें तो मेरे संपादन को संपादित करने के लिए स्वतंत्र महसूस करें :) - Horn OK Please
@allquixotic किसी को भी शुरू? संपादित करें और संपादित करें ताकि आप एक संपादन संपादित कर सकें ... - SnakeDoc
यह जवाब निश्चित रूप से "मुझे कभी-कभी अवांछित अपवॉट्स द्वारा उड़ाया गया" का मामला है। यह प्रश्न के मूल मुद्दे को संबोधित नहीं करता है जो संकुचित टैर की सामग्री सूचीबद्ध करने के साथ है और यह भी एक मूल उत्तर नहीं है! - Ярослав Рахматуллин
महान न्याय के लिए -1। यह एक टिप्पणी होनी चाहिए थी। - wim
मैं विरासत / सबसे कम आम denominator तर्क नहीं खरीदता; मुझे याद है कि नए सिस्टम (सूरज) को अक्सर gzip / gunzip (sunfreeware से) डाउनलोड करने के लिए बस अन्य tar.gz पैक किए गए सॉफ़्टवेयर को स्थापित करने के लिए (प्लस gnu tar, सूरज के टैर चूसने के बाद) को याद रखना पड़ता है। विरासत / निचले-आम denominator के लिए, आप था tar.Z (संपीड़ित / uncompress)। उपयोगिता की प्रगति परिवर्तन और सुधार की निरंतर धारा (कोई इरादा नहीं है): Z => ज़िप => gz => bz2 => 7z => xz (या जो भी आप पसंद करते हैं)। टैर की भूमिका के लिए, कुछ यूटिल केवल अन / संपीड़ित होते हैं, और अभी भी फ़ाइल पदानुक्रमों को बंडल करने के लिए टैर की आवश्यकता होती है। - michael


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

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

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

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

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

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

  • क्या आप कच्चे डिवाइस से लिखना या पुनर्प्राप्त करना चाहते हैं? तार का प्रारूप उस ठीक से संभालता है।

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

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

  • क्या आप केवल उन फ़ाइलों को पकड़ना चाहते हैं जो आपके पिछले बैकअप से नए हैं? तार ऐसा कर सकता है।

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

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

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


61



आपको मनमाने ढंग से कंप्रेसर का उपयोग करने के लिए जीएनयू टैर की आवश्यकता नहीं है: केवल स्टडआउट के साथ संग्रह लिखने के लिए टैर बताएं f -और इसे कंप्रेसर को पाइप करें। - Ilmari Karonen
"क्या आप असम्पीडित डेटा चाहते हैं (क्यों?)?" मैं उपयोग करता हूं tar अक्सर एक फाइल से दूसरे स्थान पर एक फाइल सिस्टम पेड़ की प्रतिलिपि बनाने और अनुमतियों को संरक्षित करने के लिए, आदि, और इस मामले में संपीड़न केवल अतिरिक्त CPU चक्र लेता है। जैसे tar cf - * | tar xf - -C /somewhere। - Steve
इसके अतिरिक्त, जब आप गंतव्य फाइल सिस्टम डी-डुप्लिकेशन करते हैं तो आप एक .tar फ़ाइल चाहते हैं। एक फाइल सिस्टम पर संपीड़ित अभिलेखागार बनाना जो डी-डुप्लिकेशंस करता है, वह dedupe अनुपात को काफी कम कर देगा। उदाहरण: हमने एक बार $ 10,000.00 tar.gz फ़ाइल हटा दी है; मतलब, यह $ 10k के भंडारण स्थान ले रहा था क्योंकि किसी ने संपीड़न का उपयोग किया था। - Aaron
LS4 या LZO जैसे एल्गोरिदम के लिए डिस्क IO से @Steve CPU चक्र सस्ता हो सकता है। यही कारण है कि उनका उपयोग ज़्राम में किया जाता है, और एनटीएफएस, जेएफएस, बीआरटीएफ जैसे पारदर्शी संपीड़न फ़ाइल सिस्टम ... इसलिए कभी-कभी यह डिस्क आईओ की मात्रा बहुत कम होने के बाद से संपीड़ित होने की तुलना में तेज़ है - phuclv


आप दो अलग प्रक्रियाओं को भ्रमित करते हैं संग्रह तथा दबाव

एक संग्रहकर्ता का उपयोग करने के कारण

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

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

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

Gzip संपीड़न के साथ एक संग्रहक का उपयोग करने के कारण

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

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

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


28



लेकिन अगर आप संग्रह करने जा रहे हैं, तो संपीड़न क्यों नहीं करते? ठीक है, हाँ, यह उन फ़ाइलों के लिए समय बचा सकता है जो आसानी से संपीड़ित नहीं होते हैं, लेकिन फिर संग्रहकर्ताओं को शायद यह पता होना चाहिए कि उदाहरण के लिए संगीत, हेडर के अलावा, बहुत संपीड़ित नहीं हैं। - MarcusJ
आपको इसकी आवश्यकता नहीं हो सकती है, या आपकी सामग्री संपीड़ित नहीं हो सकती है। - Hasturkun
प्रदर्शन कारणों से कंप्रेसर डेटा को संपीड़ित कर सकते हैं जिस गति से अधिक उच्च बैंडविड्थ नेटवर्क लिंक पर डेटा भेजते समय असंपीड़ित फ़ाइल एकत्रीकरण का उपयोग करना अक्सर आसान होता है। यह गिगाबिट ईथरनेट के साथ उदाहरण के लिए प्राप्त करने योग्य है; केवल कुछ अच्छी तरह से डिज़ाइन किए गए संपीड़न एल्गोरिदम, जिनमें बहुत खराब संपीड़न अनुपात भी है, डेटा को संकुचित कर सकता है जो कि एक बड़े डेस्कटॉप सीपीयू पर भी तेज़ है। एक एम्बेडेड डिवाइस पर आपके पास काम करने के लिए कम CPU समय भी है। - Horn OK Please
न केवल यह तेजी से चीजें हैं बल्कि यह फ़ाइल स्वामित्व, टाइमस्टैम्प और विशेषताओं को संरक्षित करने की अनुमति भी देती है (यदि उपयोगकर्ता विशेषाधिकार इसे अनुमति देते हैं) - Andre Holzner
@AndreHolzner दाएं। मैं अक्सर करता हूँ tar cf - . | (cd ~/somewhere; tar xvf -)। यह वास्तव में उपयोगी नहीं है जब तक कि केंद्रीय सूचकांक लिखा न जाए (उदाहरण के लिए ज़िप फ़ाइल में)। - user239558


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

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

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

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


24



मुझे रार के बारे में पता नहीं है (यह एक भयानक कार्यक्रम है जो समुद्री डाकू के साथ लोकप्रिय हो गया है, जो कई छोटी फाइलों में विभाजित होने की क्षमता का उपयोग कर रहा है), लेकिन आप ज़िप को ठीक से स्ट्रीम कर सकते हैं। मैन पेज भी इसका उल्लेख करता है। यह भी एक बड़े संग्रह के बीच से फ़ाइलों को निकालने या अद्यतन करने में सक्षम होने का लाभ है, हालांकि टैर थोड़ा बेहतर संपीड़न प्राप्त करता है। संपीड़न बनाम यादृच्छिक पहुंच एक व्यापार है। - psusi
@psusi गलत है। आप जैसे हैक्स कर सकते हैं इस, लेकिन यह क्या करता है स्मृति में सभी फाइल डाउनलोड करता है और फिर इसे डाउनलोड करते समय अनजिप करने के बजाए इसे अनजिप कर देता है। तथा funzip बस ज़िप फ़ाइल में पहली फ़ाइल निकालता है, बिलकुल नहीं। - Carlos Campderrós
@Stu सिर्फ स्पष्टीकरण के लिए, कोई मुद्दा नहीं है, बस अपना समय अनुकूलित कर रहा है (यदि आपने सोचा था तो मुझे अंतरिक्ष की परवाह नहीं है) - Carlos Campderrós
दोनों पक्ष काम करते हैं: आप एक तरफ एक तरफ और अनार भी कर सकते हैं: tar zc /some/folder | ssh user@host "cd /other/folder && tar zx" - Carlos Campderrós
@psusi जैसा कि मुझे पुरानी बार याद है जब एकाधिक floppies पर फ़ाइलों को स्टोर करने के लिए pkzip का उपयोग करते हैं, संग्रह के अंत में ज़िप स्टोर कैटलॉग। यह हमेशा प्रारंभ निष्कर्षण या शो कैटलॉग के लिए अंतिम फ्लॉपी का अनुरोध करता है। इसलिए en.wikipedia.org/wiki/File:ZIP-64_Internal_Layout.svg - Mikhail Moskalev


(जीएनयू) तार के साथ रहने के कई कारण हैं।

यह है:

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

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


13



यह मुफ्त सॉफ्टवेयर है - तो उनमें से बहुत सारे हैं यह क्या करता है यह अच्छा है - अन्य सामानों की तुलना में शायद ही यह अच्छी तरह से प्रलेखित है और इसमें कई विशेषताएं हैं - सुविधाओं का शायद ही उपयोग किया जाता है और उपयोग करने में आसानी से उपयोग किया जाता है। यह कई संपीड़न एल्गोरिदम का समर्थन करता है - कुछ अन्य लोगों के रूप में नहीं - Griffin
यूनिक्स देवताओं ने इसे बनाया - इसलिए हमें इसका उपयोग करना होगा! - SnakeDoc
तार भी यूनिक्स अनुमतियों को मूल रूप से स्टोर करता है, और यह बहुत प्रसिद्ध और परीक्षण किया जाता है। कुछ उदाहरणों से अधिक है जहां किसी को फ़ाइल या समूह में फ़ाइलों का एक गुच्छा ग्लोब करने की आवश्यकता हो सकती है, लेकिन इसे आवश्यक रूप से संपीड़ित नहीं करना चाहिए। - LawrenceC
सौभाग्य से टैर केवल जीएनयू संस्करण तक ही सीमित नहीं है। जबकि जीएनयू टैर निश्चित रूप से सॉफ्टवेयर का एक अच्छा टुकड़ा है, लिबरैचिव + संबंधित फ्रंट सिरों को अन्य सॉफ्टवेयर परियोजनाओं में एम्बेड करना बहुत तेज़ और आसान है। आप इसे लाइसेंसिंग लड़ाई में बदलने के बिना टैर के लिए तर्क दे सकते हैं। - Lucas Holt
मैं व्यंग्यात्मक नहीं हूँ। मुझे आरएमएस पसंद है और जिस तरह से वह अपना विश्वास करता है। - Ярослав Рахматуллин


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

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

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

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


11



नहीं, आप दोनों ज़िप फ़ाइलों को एक पाइप से और एक स्ट्रीम के रूप में पढ़ और लिख सकते हैं। - Mark Adler
यह कार्यान्वयन-विशिष्ट हो सकता है, तो यह निश्चित रूप से मूल pkzip द्वारा समर्थित नहीं है। - xorsyst
हां, सॉफ़्टवेयर को इसका समर्थन करने के लिए लिखा जाना है। ज़िप प्रारूप डेटा डिस्क्रिप्टर के साथ पूरी तरह से इसका समर्थन करता है जो लंबाई और सीआरसी के साथ संपीड़ित डेटा का पालन कर सकता है। - Mark Adler
@ मार्क एडलर, क्या सॉफ्टवेयर? इंफोजिप एक पाइप से अनजिपिंग का समर्थन नहीं करता है। - psusi
zlib.net/sunzip033.c.gz - Mark Adler


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

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

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

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

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

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

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

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


11



सीडब्ल्यू के लिए खड़ा है सामुदायिक विकी। यह भी देखें "सामुदायिक विकी" पोस्ट क्या हैं?। - ctype.h
मुझे लगता है कि यह सीडब्ल्यू है क्योंकि प्रश्न में 15 से अधिक उत्तरों हैं। जब आपने यह उत्तर पोस्ट किया, क्योंकि यह 15 वां है, तो प्रश्न और सभी उत्तरों को सीडब्ल्यू चिह्नित किया गया था। - ctype.h
मैं यह देखने में असफल रहा कि यह उत्तर कुछ कैसे कहता है कि अन्य उत्तरों में से कोई भी सीधे प्रश्नों को उद्धृत करने के अलावा नहीं करता है (जिसे मैंने लिखा था, बीटीडब्लू, क्योंकि सवाल का मूल संशोधन एनएआरक्यू के रूप में बंद होने के लिए काफी भयानक था)। हालांकि, कोशिश अच्छी थी। - Horn OK Please
उम ठीक। जो भी आप सोचना चाहते हैं वह ठीक है। आपका उत्तर और न ही कोई अन्य उत्तर यह पता लगाता है कि प्रदर्शन दंड है या नहीं। आपका उत्तर ध्यान देने योग्य संपीड़न अंतर को संबोधित नहीं करता है, हालांकि अन्य लोग करते हैं। चूंकि आपका वास्तव में प्रदर्शन को संबोधित नहीं करता है (आपका प्रदर्शन अनुभाग वास्तव में वर्कफ़्लो के बारे में है, प्रदर्शन के बारे में कुछ नहीं), कोई अन्य उत्तर एक ही स्थान पर सब कुछ जवाब नहीं देता है। यह दिलचस्प है कि आपने प्रदर्शन जुर्माना प्रश्न लिखा था, लेकिन आपने इसका जवाब नहीं दिया! जाओ पता लगाओ। - Mark Adler
वैसे, आपकी वर्कफ़्लो चर्चा किसी के बारे में कुछ नहीं है, जो एक डिस्क पर एक टैर फ़ाइल लिखना है और फिर इसे संपीड़ित करना है। टैर हमेशा संपीड़न कार्यक्रम को सीधे या सीधे एक पाइप में संपीड़न कार्यक्रम में कॉल करने के लिए प्रयोग किया जाता है। - Mark Adler


प्रदर्शन

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

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

लोकप्रियता

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

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


11



ज़िप यूनिक्स अनुमतियों को स्टोर और पुनर्स्थापित कर सकता है। सामान्य रूप से यूनिक्स सिस्टम के साथ वितरित InfoZIP से ज़िप और अनजिप यूटिलिटीज यह करता है। - Mark Adler
ज़िप 32K भागों में फ़ाइल को संपीड़ित नहीं करता है। संपीड़न कैसे किया जाता है इसके साथ आप 32 के स्लाइडिंग विंडो आकार को भ्रमित कर रहे हैं। - Mark Adler
gzip -9 में 900 केबी शब्दकोश नहीं है। Gzip के सभी स्तर 32K शब्दकोश का उपयोग करते हैं। आप bzip2 के बारे में सोच रहे हो सकता है। - Mark Adler
एक जवाब में बहुत गलत जानकारी। - Mark Adler
आपको या तो अपने उत्तर में सुधार करने या अपना उत्तर हटाने की आवश्यकता है। - Mark Adler