Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Bash प्रोग्रामिंग

Linux tee कमांड में मास्टरी: आउटपुट को फ़ाइल और कंसोल में विभाजित करें

Linux Shell/कमांड लाइन में tee कमांड एक एप्लिकेशन के आउटपुट को विभाजित करता है – आउटपुट को दोनों एक फ़ाइल और STDOUT (कंसोल या एक अन्य एप्लिकेशन) पर भेजता है। यहाँ इसका उपयोग कैसे करें।

tee कमांड का नाम प्लंबिंग में उपयोग किए जाने वाले T-स्प्लिटर के नाम पर रखा गया है – एक पाइप जो पानी को एक स्रोत से दो दिशाओं में पुनर्निर्देशित करता है।

tee कमांड सिंटैक्स

tee एक सरल उद्देश्य और सरल सिंटैक्स वाली कमांड है:

tee OPTIONS FILE

ध्यान दें कि:

  • OPTIONS नीचे दी गई तालिका से विकल्पों की सूची है
  • FILE उस फ़ाइल का पथ है जिसमें आप आउटपुट को सेव करना चाहते हैं
  • इनपुट को tee पर पाइप या रीडायरेक्ट करने की आवश्यकता है – अन्यथा, इसके पास काम करने के लिए कुछ नहीं है
    • यह मानक इनपुट/आउटपुट को रीडायरेक्ट करके किया जाता है – उदाहरणों के लिए नीचे देखें
  • tee इसे प्रदान किए गए डेटा को दोनों निर्दिष्ट FILE के साथ-साथ STDOUT (मानक आउटपुट) पर आउटपुट करेगा
    • डिफ़ॉल्ट रूप से, यह कंसोल पर आउटपुट होगा, लेकिन इसे अन्य एप्लिकेशन्स में भी रीडायरेक्ट किया जा सकता है

विकल्प

यहाँ tee कमांड के लिए सबसे अधिक उपयोग किए जाने वाले विकल्प हैं:

विकल्प विवरण
-a, –append दिए गए FILEs में जोड़ें, ओवरराइट न करें
-i, –ignore-interrupts इंटरप्ट सिग्नल्स को अनदेखा करें

अधिक विकल्पों के लिए, जिसमें त्रुटियों का निदान कैसे करें, आप यूजर मैनुअल चलाकर देख सकते हैं:

man tee

tee कमांड उदाहरण

यहाँ कुछ सरल उदाहरण हैं कि tee का उपयोग कैसे किया जा सकता है।

ये सभी उदाहरण echo कमांड का उपयोग करते हैं, जो बस इसे सप्लाई किए गए टेक्स्ट को आउटपुट करता है।

कमांड से आउटपुट देखें और नई फ़ाइल में सेव करें

echo कमांड का आउटपुट tee को पाइप किया जाएगा, जो इसे फ़ाइल में सेव करेगा साथ ही कंसोल पर आउटपुट करेगा:

echo "hello!" | tee hello.txt

यदि फ़ाइल hello.txt मौजूद है, तो इसे ओवरराइट कर दिया जाएगा।

कमांड से आउटपुट देखें और मौजूदा फ़ाइल में सेव करें

यह उदाहरण ऊपर जैसा ही करता है, लेकिन यह मौजूदा फ़ाइल के अंत में जोड़ देगा बजाय इसे ओवरराइट करने के:

echo "hello again!" | tee -a hello.txt

आउटपुट को एकाधिक फ़ाइलों में सेव या जोड़ें

कई फ़ाइलें निर्दिष्ट की जा सकती हैं, स्पेस द्वारा अलग की गईं:

echo "hello several files!" | tee hello1.txt hello2.txt hello3.txt

tee आउटपुट को रीडायरेक्ट/पाइप करें

tee के मानक आउटपुट को पाइप और रीडायरेक्ट किया जा सकता है। नीचे का उदाहरण echo के आउटपुट को hello.txt में सेव करेगा। आउटपुट फिर कंसोल पर आउटपुट होने के बजाय grep कमांड को पास किया जाएगा:

echo "hello!" | tee hello.txt | grep hello

उदाहरण के लिए, grep कमांड (जिसका उपयोग टेक्स्ट इनपुट खोजने के लिए किया जाता है) बस tee से आउटपुट में "hello" शब्द खोजता है।

इंटरप्ट्स को अनदेखा करना

इंटरप्ट्स को अनदेखा करना (उदाहरण के लिए कमांड छोड़ने के लिए CTRL + C दबाना) tee से क्लीनर आउटपुट का परिणाम दे सकता है:

echo "hello!" | tee -i hello.txt

sudo के साथ tee का उपयोग करना

sudo कमांड आपको रूट यूजर के रूप में कमांड्स निष्पादित करने की अनुमति देता है बिना रूट के रूप में लॉग इन किए और आमतौर पर उपयोग किया जाता है।

निम्न स्निपेट में – sudo आपको कमांड्स के आउटपुट को रीडायरेक्ट करने की अनुमति नहीं देता है, क्योंकि sudo कमांड स्वयं रीडायरेक्शन नहीं करता है क्योंकि यह रीडायरेक्शन सिंबल (>) से पहले आता है:

sudo echo "hello!" > /root/hello.txt

…यह एक परमिशन एरर के साथ विफल होगा क्योंकि /root डायरेक्ट्री को रूट विशेषाधिकारों की आवश्यकता होती है, लेकिन sudo कमांड केवल इन विशेषाधिकारों को echo कमांड पर लागू करता है – बाद में आने वाले रीडायरेक्शन पर नहीं।

इससे निपटने की एक ट्रिक tee कमांड का उपयोग करना है:

echo "hello!" | sudo tee /root/hello.txt

यह काम करेगा क्योंकि echo कमांड का आउटपुट tee को पास किया जाता है, जो है sudo के माध्यम से एडमिनिस्ट्रेटिव विशेषाधिकारों के साथ चल रहा है – और tee आउटपुट को सेव करता है।

  1. Marcel: लिनक्स के लिए एक आधुनिक, Python-संचालित शेल Marcel: लिनक्स के लिए एक आधुनिक, Python-संचालित शेल

    Marcel एक नया शेल है। यह कई मायनों में पारंपरिक शेल्स के समान है, लेकिन यह कुछ चीजें अलग तरह से करता है: पाइपिंग: सभी शेल्स एक कमांड के आउटपुट से दूसरे के इनपुट में टेक्स्ट भेजने के लिए पाइप्स का उपयोग करते हैं। Marcel स्ट्रिंग्स के बजाय स्ट्रक्चर्ड डेटा पाइप करता है। Python: Marcel Python में कार्

  1. डीप डाइव: लिनक्स शेल स्क्रिप्टिंग में गणितीय अवधारणाएं - भाग IV डीप डाइव: लिनक्स शेल स्क्रिप्टिंग में गणितीय अवधारणाएं - भाग IV

    इस पोस्ट में मैं गणितीय और संख्या के दृष्टिकोण से स्क्रिप्ट्स पर चर्चा करूंगा। हालांकि मैंने पिछली पोस्ट में एक अधिक जटिल स्क्रिप्ट (सरल कैलकुलेटर) पोस्ट की थी, लेकिन यूज़र के हिस्से पर इसे समझना मुश्किल था और इसलिए मैंने सोचा कि आप लोगों को सीखने के अन्य उपयोगी पक्ष को छोटे पैकेट में सीखाऊं। इस ले

  1. आवश्यक Linux ls कमांड: फ़ाइलों और निर्देशिकाओं को त्वरित और प्रभावी ढंग से सूचीबद्ध करें आवश्यक Linux ls कमांड: फ़ाइलों और निर्देशिकाओं को त्वरित और प्रभावी ढंग से सूचीबद्ध करें

    Linux में ls कमांड शायद उन पहले कमांड में से एक है जिनकी आपको कभी आवश्यकता होगी। इस लेख में, हम कमांड और आमतौर पर उपयोग किए जाने वाले पैरामीटर्स पर जाएंगे। मेरा पसंदीदा विकल्प सेट इस प्रकार है: ls -Zaltrh आइए प्रत्येक विकल्प को व्यक्तिगत रूप से देखें, और बताएं कि विकल्पों का पूरा समूह क्यों उपयोगी ह