Tee बेकार नहीं है
शायद तुम्हें पता था कि वैसे भी? यदि नहीं, तो पर पढ़ें! या यदि आप जानते हैं कि यह कैसे काम करता है, लेकिन यह सुनिश्चित नहीं है कि यह क्यों मौजूद है, तो यह देखने के लिए कि यह यूनिक्स दर्शन के साथ कैसे फिट है, को छोड़ दें।
का उद्देश्य क्या हैtee ?
अपने सरलतम स्तर पर, यह मानक इनपुट पर डेटा लेता है और लिखता है कि मानक आउटपुट और एक (या अधिक) फ़ाइलों को। यह प्लंबिंग टी पीस की तरह से किया गया है, जिस तरह से यह एक इनपुट को दो आउटपुट (और दो दिशाओं) में विभाजित करता है।
उदाहरण
चलो अपना पहला उदाहरण लेते हैं:
do_something | tee -a logfile
यह आउटपुट लेता है do_somethingऔर इसे लॉगफ़ाइल में जोड़ देता है, जबकि इसे उपयोगकर्ता को प्रदर्शित भी करता है। वास्तव में, विकिपीडिया पृष्ठ परtee इसका दूसरा उदाहरण है:
कमांड से आउटपुट को मौजूदा फ़ाइल में देखने और जोड़ने के लिए:
lint program.c | tee -a program.lint
यह कंप्यूटर पर lint program.c कमांड के मानक आउटपुट को प्रदर्शित करता है और उसी समय इसकी एक प्रति प्रोग्राम.lint फ़ाइल के अंत में भेजता है। यदि program.lint फ़ाइल मौजूद नहीं है, तो इसे बनाया जाता है।
अगले उदाहरण में एक और उपयोग है: अनुमतियों में वृद्धि :
अनुमतियाँ बढ़ाने के लिए:
cat ~/.ssh/id_rsa.pub | ssh admin@server "sudo tee -a /root/.ssh/authorized_keys2 > /dev/null"
यह उदाहरण दिखाता है कि टी को sudoकमांड में निहित सीमा को बायपास करने के लिए इस्तेमाल किया जा रहा है । sudoमानक आउटपुट को फ़ाइल में पाइप करने में असमर्थ है। इसकी मानक आउट स्ट्रीम को डंप करके /dev/null, हम कंसोल में मिरर किए गए आउटपुट को भी दबा देते हैं। उपर्युक्त कमांड सर्वर के मुख्य प्राधिकरण सूची में उपयोगकर्ता की सार्वजनिक कुंजी स्थापित करके वर्तमान उपयोगकर्ता रूट को ssh के सर्वर पर पहुँच देता है।
या शायद आप एक कमांड का आउटपुट लेना चाहते हैं, यह लिखें कि कहीं और भी उस कमांड को किसी अन्य कमांड के इनपुट के रूप में उपयोग करें?
आप किसी फ़ाइल के लिए कमांड के आउटपुट को स्टोर करने के लिए टी कमांड का उपयोग कर सकते हैं और उसी आउटपुट को दूसरे कमांड के इनपुट के रूप में रीडायरेक्ट कर सकते हैं।
निम्न कमांड crontab प्रविष्टियों का बैकअप लेगा, और crontab प्रविष्टियों को sed कमांड के इनपुट के रूप में पास करेगा जो प्रतिस्थापन करेगा। प्रतिस्थापन के बाद, इसे एक नए क्रॉन जॉब के रूप में जोड़ा जाएगा।
$ crontab -l | tee crontab-backup.txt | sed 's/old/new/' | crontab –
( Tee कमांड उपयोग उदाहरण के लिए क्रेडिट )
Tee यूनिक्स दर्शन के साथ काम करता है:
ऐसे कार्यक्रम लिखें जो एक काम करते हैं और इसे अच्छी तरह से करते हैं। एक साथ काम करने के लिए कार्यक्रम लिखें। पाठ धाराओं को संभालने के लिए प्रोग्राम लिखें, क्योंकि यह एक सार्वभौमिक इंटरफ़ेस है।
( यूनिक्स दर्शन की मूल बातें करने के लिए क्रेडिट )
tee इन सभी में फिट बैठता है:
- यह एक काम करता है: इनपुट की एक अतिरिक्त प्रति बनाता है
- यह अन्य कार्यक्रमों के साथ काम करता है क्योंकि यह गोंद है (या 'T' प्लंबिंग पीस यदि आप चाहें तो) जो अन्य कार्यक्रमों को एक साथ काम करने देता है जैसा कि ऊपर के उदाहरणों में दिया गया है
- यह मानक इनपुट पर दिए गए पाठ स्ट्रीम में हेरफेर करके ऐसा करता है