Howto पाइप: cp | टार | मध्यस्थ फ़ाइलों को बनाने के बिना gzip?


30

क्या कोई मुझे बता सकता है कि क्या पाइप करना संभव है | A और B.tar.gz के बीच कहीं भी एक भौतिक फ़ाइल बनाने के बिना यह?

यही मैं करने की कोशिश कर रहा हूँ:

  1. फ़ाइल ए
  2. A से B का नाम बदलें
  3. टर ब टर
  4. gzip -9 B.tar.gz

उदाहरण के लिए:

cp A B | tar cvf - B | gzip -9 B.tar.gz
gzip  pipe  tar 

आप पाइप करना क्यों पसंद करेंगे cp A B?
डोर

1
नाम है mv
कारोली होर्वाथ

3
कृपया बताएं कि आप कॉपी करना चाहते हैं Aके लिए Bपहले।
प्रात

जवाबों:


42

मध्यस्थ फ़ाइल बनाने से बचने के लिए निम्नलिखित उदाहरणों का उपयोग किया जा सकता है:

टैर गज़िप के साथ:

tar cf - A | gzip -9 > B.tar.gz

टार के बिना gzip:

gzip -9c A > B.gz

टार बिना gzip:

tar cf B.tar A

नाम बदल रहा है (चलती) Aकरने के लिए Bपहले मेरे लिए कोई मतलब नहीं है। यदि यह इरादा है, तो बस mv A B &&ऊपर दिए गए आदेशों में से किसी एक को डालें और वहां से विनिमय Aकरें B

टार और गज़िप के साथ उदाहरण:

mv A B && tar cf - B | gzip -9 > B.tar.gz


1
यह सही है और इसे इस तरह चिह्नित किया जाना चाहिए। आपको पाइप किए गए विकल्प के लिए "टार" के बाद "-" शामिल करना होगा अन्यथा आपको "टार: कायर" खाली संग्रह बनाने से मना कर देगा। "
Adambean

6

यह आपके टार के संस्करण पर निर्भर करता है

यदि आपके पास सदस्य रूपांतरणों का समर्थन करने वाला संस्करण (--transform या --xform) है तो आप बस कर सकते हैं

tar -c --transform=s/A/B/ A | gzip -9 > B.tar.gz

| gzip -9> B.tar.gz से बचा जा सकता है अगर आपका टार -z विकल्प का समर्थन करता है

tar -zcvf B.tar.gz --transform=s/A/B/ A

यदि आपके टार के संस्करण का समर्थन नहीं करता है - तो आप को पहले उदाहरण के लिए फ़ाइल को कॉपी करना होगा

 cp A B && tar -zcvf B.tar.gz B

हालाँकि यदि आप केवल एक फ़ाइल को कंप्रेस कर रहे हैं तो टार पार्ट को एक साथ छोड़ें और बस क्यों न करें

cat A | gzip -9 > B.gz

मैंने cp का उपयोग किया है जैसा कि आपने अपने उदाहरण में किया है लेकिन नाम बदलकर mv है

0

यदि आप cpएक अलग नाम / स्थान के साथ एक प्रतिलिपि बनाने के लिए उपयोग कर रहे हैं , तो अपनी पूर्ण .gzip फ़ाइल बनाते समय इच्छित पूर्ण / अंतिम पाथनाम शामिल करें:

tar -cvf existing.file | gzip -1 > ./newdirectory/newnamed.file.tgz

यह काम नहीं करता है, "टार: कायर" एक खाली संग्रह बनाने से इनकार कर रहा है।
Adambean

@Adambean शायद आप उपयोग करना चाहते हैं tar -czf - some-folder > some-archive.tar.gz?
tsauerwein

1
@tsauerwein, हाँ, 14 महीने पहले से नीचे दिए गए उत्तर के लिए मेरा उत्तर देखें ...
अडम्बियन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.