सबसे तेज़ तरीका है tar.gz निकालने का


42

वहाँ वैसे भी एक tar.gz फ़ाइल से तेजी से निकालने के लिए है tar -zxvf filenamehere?

हमारे पास बड़ी फाइलें हैं, और ऑपरेशन को अनुकूलित करने की कोशिश कर रहे हैं।


2
क्या आप पा रहे हैं कि $ tar -zxvfविधि IO या CPU बाध्य है?
ईईएए

1
सीपीयू पर विश्वास करें, हालांकि मैं कैसे जांच सकता हूं?
जस्टिन

5
सीधे तौर पर संबंधित नहीं, लेकिन 2004 / तार v1.1.5 gnu.org/software/tar/#TOCreleases :) के बाद से 'z' की आवश्यकता नहीं है :
JamesHannah

जवाबों:


57

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

pigz -dc target.tar.gz | टार xf -


11
+1। FWIW, आप यह भी लिख सकते हैं tar -xvf --use-compress-program=pigz filenamehere। ( -zमात्राएँ --use-compress-program=gzip।) वैकल्पिक रूप से, आप भी gzipएक सिमलिंक बना सकते हैं pigzऔर उपयोग कर सकते हैं -zxvf
बरबाद

2
@ruakh, मुझे -xfबाद में रखना था --use-compress-program=pigz, या मुझे एक त्रुटि मिली। किसी कारण के लिए, gzipहालांकि यह उपयोग करने से तेज नहीं था ।
जोंडररी

के लिए bzip2है pbzip2( pसमानांतर के लिए)। tar --use-compress-program=pbzip2 -xvf file.tar.bz2
अल्फ सी.पी.

क्या ध्वज pvका उपयोग करते समय प्रगति, या एक संतुलन दिखाने के लिए कमांड का उपयोग करने का एक तरीका है --use-compress-program=pigz? संपीड़न के दौरान, मैं कर सकता हूं gnutar --use-compress-program="pigz | pv" -cf target.tar.gz YourData, लेकिन यह सुनिश्चित नहीं करूंगा कि यह कैसे करना है।
स्टीफन लासिवस्की

13

अगर टार बॉल में कई सारी छोटी फाइलें हैं, तो 'v' पैरामीटर रद्द करें, फिर से कोशिश करें!


3
मैं कभी भी -v परम का उपयोग नहीं करता। न जाने क्यों लोगों को सांत्वना में इतना शोर चाहिए।
ईमंतस

9
@Eimantas जब आप किसी ऐसी चीज को खोलते हैं जिसमें कई बहु-गीगाबाइट फाइलें होती हैं, तो आप प्रगति के कुछ संकेत चाहते हैं। :)
माइकल हैम्पटन

@ तीमुहेग: यह वास्तव में जानने के लिए बहुत अच्छा है, कृपया एक अलग उत्तर के रूप में पोस्ट करें!
smci

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

यह प्रयोग करने के लायक हो सकता है --checkpoint=NUMBER( बजाय प्रत्येक रिकॉर्ड के प्रगति संदेश प्रदर्शित करें ) -v
स्टीफन लासिवस्की

6

यदि आप प्रगति को कुछ इस तरह देखना चाहते हैं pv। यहाँ एक उदाहरण है:

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