2> / देव / अशक्त का क्या अर्थ है?

मैं निम्नलिखित कमांड लाइन का संक्षिप्त विवरण चाहूंगा:

grep -i 'abc' content 2>/dev/null 

> ऑपरेटर आउटपुट को आमतौर पर एक फ़ाइल में पुनर्निर्देशित करता है लेकिन यह एक डिवाइस के लिए हो सकता है । आप भी उपयोग कर सकते हैं >> संलग्न करने के लिए ।

यदि आप कोई संख्या निर्दिष्ट नहीं करते हैं तो मानक आउटपुट स्ट्रीम मान ली जाती है, लेकिन आप त्रुटियों को पुनर्निर्देशित भी कर सकते हैं:

> file फ़ाइल को रीडायरेक्ट करता है
1> file फ़ाइल को रीडायरेक्ट करता है

2> file फाइल करने के लिए एसटीडीईआर को रीडायरेक्ट करता है

&> file फ़ाइल के लिए स्टडआउट और स्टडर को रीडायरेक्ट करता है
> file 2>&1 फ़ाइल के लिए स्टडआउट और स्टडर को रीडायरेक्ट करता है

/dev/null अशक्त डिवाइस है जो आप चाहते हैं कि कोई भी इनपुट लेता है और इसे फेंक देता है । इसका उपयोग किसी भी आउटपुट को दबाने के लिए किया जा सकता है ।

ध्यान दें कि > file 2>&1 एक पुराना वाक्यविन्यास है जो अभी भी काम करता है, &> file है, लेकिन पुराने सिस्टम पर काम नहीं किया होगा ।

संक्षेप में, यह पुनर्निर्देशित करता है stderr (fd 2) ब्लैक होल के लिए (कमांड के आउटपुट को त्याग देता है) ।

पुनर्निर्देशन के लिए कुछ आमतौर पर इस्तेमाल किया पैटर्न:

command > /dev/null 2>&1 &

भागो command पृष्ठभूमि में, त्यागें stdout और stderr

command >> /path/to/log 2>&1 &

भागो command, संलग्न करें stdout और stderr एक लॉग फ़ाइल के लिए ।

बैश 4+ में, एक छोटा (लेकिन कम पठनीय) रूप कार्यात्मक है

command &>> /path/to/log

/dev/null माना जाता है ब्लैक होल लिनक्स/यूनिक्स में, ताकि आप इसमें कुछ भी डाल सकें लेकिन आप इसे वापस नहीं पा पाएंगे /dev/null.

आगे की, 2> इसका मतलब है कि आप रीडायरेक्ट कर रहे हैं (यानी >) एसटीडीआरआर (यानी । 2) ब्लैक होल में (यानी /dev/null)

आपका आदेश है:

grep -i 'abc' content 2>/dev/null 

इस तरह एक और आगे स्लैश के साथ समाप्त करने की कोशिश मत करो - 2>/dev/null/ (यह एक निर्देशिका नहीं है) ।

ग्रेप-आई 'एबीसी' सामग्री आउटपुट उत्पन्न करेगी जो आपके कंसोल पर प्रदर्शित होती है, जिसमें कोई त्रुटि भी शामिल है ।

निर्दिष्ट करना 2>/dev/null त्रुटियों को फ़िल्टर करेगा ताकि वे आपके कंसोल पर आउटपुट न हों ।

अधिक विस्तार से: 2 त्रुटि डिस्क्रिप्टर का प्रतिनिधित्व करता है, जहां त्रुटियां लिखी जाती हैं । डिफ़ॉल्ट रूप से वे कंसोल पर मुद्रित होते हैं ।

\> इस मामले में निर्दिष्ट स्थान पर आउटपुट रीडायरेक्ट करता है /dev/null

/dev/null मानक लिनक्स डिवाइस है जहां आप आउटपुट भेजते हैं जिसे आप अनदेखा करना चाहते हैं ।

पहले हमें बात करनी होगी > ऑपरेटर । यह प्रतीक के बाईं ओर के आउटपुट को प्रतीक के दाईं ओर पुनर्निर्देशित करता है ।

तो यह के रूप में सोचा जाना चाहिए :

>स्रोत _ कमांड लक्ष्य _ फ़ाइल

अन्य चीजें जो हमें पता होनी चाहिए

0 means stdin 1 means stdout(useful output)2 means stderr(error message output)

के रूप में डिफ़ॉल्ट, यह इस प्रकार काम करता है command 1 > target_file

के रूप में /dev/null> -- यह एक विशेष फ़ाइल है जो चैनल आउटपुट को रीडायरेक्ट करती है ।

तो आपके प्रश्न में इसका मतलब है

कमांड चलाएं और मुझे त्रुटि संदेश न दिखाएं, उन्हें त्यागें.