मैं सूरज सोलारिस में एक संकुचित टार कैसे बना सकता हूं?


11

मैं Sun Solaris OS में लॉग इन हूं। मैं एक संकुचित टार फ़ाइल बनाना और निकालना चाहता हूं। मैंने यह सामान्य UNIX कमांड आज़माया:

tar -cvzf file.tar.gz directory1

यह निम्नलिखित त्रुटि के साथ सन ओएस में निष्पादित करने में विफल हो रहा है

bash-3.2$ tar -cvzf file.tar.tz directory1
tar: z: unknown function modifier
Usage: tar {c|r|t|u|x}[BDeEFhilmnopPqTvw@[0-7]][bfk][X...] [blocksize] [tarfile] [size] [exclude-file...] {file | -I include-file | -C directory file}...

2
आपको क्यों लगता है कि यह एक सामान्य यूनिक्स कमांड है?
schaiba

मुझे लगता है कि आपको यूनिक्स लिनक्स और जीएनयू टूल्स के बीच के अंतरों को पढ़कर कुछ समय बिताने की जरूरत है।
coteyr

4
जब उन्होंने उस zझंडे को GNU टार में जोड़ा , तो हम लोगों को तार्किक रूप से सोचने और पाइपलाइन बनाने के लिए अपना सबसे बड़ा उदाहरण खो गए ...

जवाबों:


28

अस्थायी मध्यवर्ती फ़ाइल के निर्माण से बचने के लिए आप इस कमांड का उपयोग कर सकते हैं

tar cvf - directory1|gzip -c >file.tar.gz

2
यह संभावित लाभ है कि कुछ प्रसंस्करण समानांतर में हो सकता है।
पीएस

क्या f -आवश्यकता है, या सोलारिस tarडिफ़ॉल्ट रूप से स्टैडआउट करने के लिए आउटपुट करता है ?
मार्क

2
@ मर्क: मैन पेज के अनुसार , "यदि fछोड़ा गया है, tarतो TAPEपर्यावरण चर द्वारा निर्धारित डिवाइस का उपयोग करेगा , यदि सेट किया गया है, अन्यथा, यह परिभाषित डिफ़ॉल्ट मानों का उपयोग करेगा /etc/default/tar।" तो, नहीं, ऐसा नहीं लगता है कि आप सुरक्षित रूप से मान सकते हैं कि f -इसकी आवश्यकता नहीं है।
इल्मरी करोनें

@Romeo: उत्तर के लिए धन्यवाद, मुझे यह उपयोगी लगा। क्या आप स्पष्ट कर सकते हैं कि cvf और निर्देशिका नाम के बीच "-" की आवश्यकता क्यों है? इसके अतिरिक्त, मैंने कई OS - Solaris 10, 11.4, Linux (RHEL, CentOS, Oracle, इत्यादि) पर आपकी कमांड की कोशिश की और लगातार काम करता है। मैंने संबंधित टार मैन पेजों की भी समीक्षा की है - लिनक्स के बिना उपरोक्त कार्य "-" cvf से पहले क्यों होता है? मुझे उम्मीद है कि लिनक्स को "टार-सीवीएफ ...." की आवश्यकता होगी, उत्तर के लिए फिर से धन्यवाद।
आरसी 1

@ rc1, टार में डैश का मतलब है कि आपने आउटपुट फाइल को STDOUT किया है। मापदंडों की दो शैलियाँ हैं, बीएसडी और एसवाईएसवी। और लिनक्स टार उन दोनों के साथ काम करता है (cvf से पहले और w / o डैश के साथ)
रोमियो निनोव

10

की तरह लग रहा सोलारिस के tarकैसे संपीड़ित करने के लिए पता नहीं है। तो बस इसे मैन्युअल रूप से करें:

tar -cvf file.tar directory1 && gzip file.tar

-zवैसे भी GNU टार के सभी स्विच है। ऊपर दिए गए आदेश का उत्पादन होगा file.tar.gz


यह काम करेगा (जब तक आपके पास मध्यवर्ती असंपीड़ित file.tarसंग्रह संग्रहीत करने के लिए पर्याप्त डिस्क स्थान है ), लेकिन यह डिस्क स्थान की अनावश्यक रूप से धीमी और बेकार है। मैं किसी भी स्थिति के बारे में नहीं सोच सकता जहाँ यह रोमियो निनोव के जवाब के लिए बेहतर होगा ।
इल्मरी करोनन

1
@ इल्मारिकारोन न तो मैं कर सकता हूं। मैंने पहले यह सोचा था।
terdon

2

जांचें कि क्या आपने SUNWgtarइंस्टॉल किया है। यह GNU संस्करण है tarऔर यह प्रदान करता है /usr/sfw/bin/gtarजो GNU विकल्पों के उपयोग को धूमिल करने की अनुमति देगा।


-1

कृपया नीचे कमांड का प्रयास करें

tar -cvf file.tar directory1 && gzip file.tar

(सोलारिस पर फ़ाइल को ज़िप करने के लिए)

gunzip file.tar.gz

(खोलने के लिए)


1
यह एक पूरी गुच्छा से परे नहीं जोड़ता है पिछले एक जवाब
जेफ स्कालर

यह भी पूरी टार फ़ाइल (हेडर में सभी बाइनरी सहित) टर्मिनल पर फ़ाइलों को अनारकली करने के बजाय डंप करता है। आपको संभवतः बाद में टर्मिनल को रीसेट करने की आवश्यकता होगी।
पॉल_पेडेंट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.