2010-08-12 12 views
13

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

+1

नहीं, यह पार्टी से संबंधित है। और बैश प्रोग्रामिंग (तरह) है। –

+1

@ मैट जॉइनर: यह वास्तव में बाश से संबंधित नहीं है। यह एक सामान्य सिस्टम उपयोगिता के लिए एक उपयोग प्रश्न है जिसे किसी भी खोल से बुलाया जा सकता है, न केवल बाश। लेकिन हां, बाश में प्रोग्रामिंग वास्तव में प्रोग्राम है, भले ही आपने कभी कभी सुना होगा। – Cascabel

+0

हाँ, मैं SU के बारे में सोचा लेकिन यह एक अपेक्षाकृत जटिल बैश स्क्रिप्ट के अंदर है, और यह एक उपयोगकर्ता द्वारा नहीं मशीन के माध्यम से चलाया जा रहा है, तो मैं समझ यह एक छोटे SU की तुलना में अधिक अतः था। – tj111

उत्तर

21

आदमी पृष्ठ से, foo.tar.gz से blah.txt निकालने के लिए:

tar -xzf foo.tar.gz blah.txt 

(और यह सुपर उपयोगकर्ता पर चला जाता है, ज़ाहिर है, लेकिन हे, शीघ्र जवाब भी अच्छा कर रहे हैं।)

+0

यह काम करेगा अगर फ़ाइल tar.gz संरचना के अंदर उप-निर्देशिका में स्थित है? – tj111

+0

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

+1

@ tj111: अगर टार फ़ाइल में फ़ाइल नाम 'xyz/PQR/abc.txt' है, कि क्या आप आदेश पंक्ति में निर्दिष्ट करेंगे। आप शैल-स्टाइल मेटाएक्टैक्टर्स का भी उपयोग कर सकते हैं: 'xyz/pqr/*' 'xyz/pqr' के अंतर्गत सभी उप-निर्देशिकाओं में सभी फ़ाइलों को निकाल देगा। बस सावधान रहें कि क्या शैल आपके लिए '*' फैलाता है - ऐसा करने के लिए उद्धरणों का उपयोग करें। –

4

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

उदाहरण के लिए, यदि आपने src/directory पर tar किया है, और blah.txt रिलीज़ 1/साझा/के अंतर्गत था, तो आप वापस src/directory (यदि आप इसे एक ही स्थान पर अनारक्षित करना चाहते हैं) पर वापस जाएंगे

हमेशा

tar -tzf tar.gz 

सामग्री देखने के लिए

tar -xzf tar.gz release1/shared/blah.txt 

आप अपने टार फ़ाइल की निर्देशिका संरचना याद नहीं है (मैं एक छोटे से अव्यवस्थित कर रहा हूँ और कभी कभी भूल जाते हैं, जहां मैं टार किया), तो आप कर सकते हैं एक बार जब आप अपनी निर्देशिका संरचना का विचार प्राप्त कर लेते हैं (Ctrl + C) को रद्द कर देते हैं।

+0

इसके लिए धन्यवाद। यद्यपि ऐसा प्रतीत होता है कि निर्देशिका में उनके सामने स्कैन करने के किसी भी कारण के लिए '।/'की आवश्यकता है। जैसे 'tar -xzf tar.gz।/release1/shared/blah.txt' – tj111