एक सामान्य टार कमांड
tar cvf foo.tar ./foo >foo.out 2>foo.err
तीन आउटपुट IO स्ट्रीम है
- संग्रह डेटा foo.tar को
- फ़ाइल नाम की सूची STDOUT (foo.out में पुनर्निर्देशित)
- STDERR को त्रुटि संदेश (foo.err में पुनर्निर्देशित)
फिर मैं फ़ाइल नाम की सूची के माध्यम से पढ़ने के लिए बिना त्रुटि संदेशों के foo.err का निरीक्षण कर सकता हूं।
अगर मैं संग्रह डेटा के साथ कुछ करना चाहता हूं (इसे netcat या एक विशेष संपीड़न प्रोग्राम के माध्यम से पाइप करें) मैं -f -
इस प्रकार टार के विकल्प का उपयोग कर सकता हूं
tar cvf - ./foo 2>foo.err | squish > foo.tar.S
लेकिन अब मेरी फ़ाइल नाम की सूची में मेरे त्रुटि संदेशों के साथ मिलाया गया है क्योंकि टार का -v
आउटपुट स्पष्ट रूप से STDOUT पर नहीं जा सकता है (यह वह जगह है जहाँ संग्रह डेटा बहता है) इसलिए टार चतुराई से लिखता है कि बजाय STDERR को।
कोर्न शेल का उपयोग करना, एक कमांड बनाने का एक तरीका है जो आर्काइव स्ट्रीम को दूसरे कमांड पर पाइप करता है लेकिन फिर भी -v
आउटपुट को किसी भी त्रुटि संदेश से अलग से कैप्चर करता है ।
tee
? यह इसके लिए एक बहुत वैध उपयोग के मामले जैसा लगता है।