अपडेट: मेरा मूल उत्तर बिल्कुल काम नहीं करता है, क्षमा करें। tar
इनपुट के रूप में STDIN से डेटा स्ट्रीम स्वीकार नहीं करेगा, इसलिए पहला कमांड विफल रहता है।
एकमात्र तरीका मैं यह पूरा करने के बारे में सोच सकता हूं कि आप जो चाहते हैं वह आवश्यक tar
हेडर और आपके डेटा स्ट्रीम के आसपास जोड़ने के लिए अपना प्रोग्राम लिखना है। तब आप लिख सकते हैं:
$ bzcat foo.bz2 | stream-to-tar | bzip - > foo.tar.bz2
... और (अपने कार्यक्रम को tar
सही स्वरूप मानकर ) आप इसे एक मानक से कम कर सकते हैं tar xf foo.tar.bz2
।
यह संभवत: यह नहीं है कि आप इसे कैसे करना चाहते हैं, क्योंकि यह फ़ाइल को पहली जगह में टारिंग करने का कोई सामान्य लाभ प्रदान नहीं करता है।
$ bzcat foo.bz2 | tar cjf foo.tar.bz2 -
अब, समस्या यह है कि टार में कोई भी फाइल सिस्टम शामिल नहीं है, क्योंकि हमने जो दिया है वह एक विघटित डेटा स्ट्रीम है। इसका मतलब है कि आपको इसे इस तरह से हटाना / हटाना होगा:
$ tar --to-stdout -xjf foo.tar.bz2 > foo