2012-11-16 7 views
23

निम्न आदेशों के बीच क्या अंतर है?खोल आदेशों के अंत में "/ dev/null" का अर्थ क्या है

ssh myhostname "command1; command2;...commandn;" 2>/dev/null 
ssh myhostname "command1; command2;...commandn;" 
  1. 2> क्या मतलब है?

  2. /dev/null का क्या अर्थ है? मैंने कहीं पढ़ा है कि कमांड का परिणाम कंसोल के बजाय फ़ाइल /dev/null पर लिखा जाएगा! क्या यह सही है? यह मेरे लिए अजीब लगता है कि फ़ाइल का नाम null हो सकता है!

+0

1. 'मैन बाश' एक दिलचस्प पढ़ना है। 2. '/ dev/null' एक विशेष फ़ाइल है जो ब्लैक होल के रूप में कार्य करती है; यह किसी डिस्क स्थान नहीं लेता है क्योंकि इसमें जो कुछ भी लगाया जाता है वह वास्तव में त्याग दिया जाता है। – axiac

उत्तर

27

2> का मतलब है "दिए गए फ़ाइल में मानक-त्रुटि को पुनर्निर्देशित करें"।

/dev/null शून्य फ़ाइल है। इसके लिए लिखी गई कुछ भी त्याग दी गई है।

साथ में उनका मतलब है "किसी त्रुटि संदेश को फेंक दें"।

2

'/ dev/null' अनिवार्य रूप से "शून्य में" का मतलब है, त्याग दिया गया। 2 का उल्लेख आप त्रुटि आउटपुट को संदर्भित करते हैं, जहां इसे निर्देशित किया जाना चाहिए।

1

2> कुछ करने के लिए मानक त्रुटि भेजने का मतलब है

/dev/बातिल एक बिन

+2

एक पुनर्निर्देशन एक पाइप नहीं है। –

0

1) पाइप/dev/बातिल (इसलिए यह ध्यान न दें और इसे प्रदर्शित नहीं है) के लिए मानक त्रुटि पर सब कुछ का मतलब

2) देव नल बस कहीं भी इंगित करता है, उस पर कुछ भी पाइप, और यह गायब हो जाता है।

+0

अन्य चीजें/dev/जैसे फाइल सिस्टम (डिवाइस यानी /dev/sda) पर पॉइंटर्स और/dev/random जैसी चीजें हैं जहां आप यादृच्छिक डेटा प्राप्त करने के लिए पढ़ सकते हैं। – BrenanK

+2

इसमें कोई पाइप शामिल नहीं है। पुनर्निर्देशन पाइप नहीं हैं। –

+0

आप सही महोदय हैं! क्षमा करें, गलत शब्द। – BrenanK

3

1 stdout है। 2 stderr है।

फिर कभी-कभी आपको 2>&1 मिल जाता है, जिसका अर्थ है stderr को stdout पर रीडायरेक्ट करना।

संबंधित मुद्दे