मैं निम्नलिखित कमांड लाइन का संक्षिप्त विवरण चाहूंगा:
grep -i 'abc' content 2>/dev/null
मैं निम्नलिखित कमांड लाइन का संक्षिप्त विवरण चाहूंगा:
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
> -- यह एक विशेष फ़ाइल है जो चैनल आउटपुट को रीडायरेक्ट करती है ।
तो आपके प्रश्न में इसका मतलब है
कमांड चलाएं और मुझे त्रुटि संदेश न दिखाएं, उन्हें त्यागें.