2012-02-22 14 views
7

मुझे पता है कि क्या & बयान में इसका मतलब है करना चाहते हैं:क्या 2> 1>/dev/बातिल और 2> & 1>/dev के बीच का अंतर/बातिल

2>&1 > /dev/null 

इसके लिए stdout पुन: निर्देशित हो stderr और उसके बाद थोड़ा बाल्टी करने के लिए लेकिन इसमें & क्या है?

2>1 >/dev/null 
+2

निश्चित रूप से, यदि आप "1" नाम की फ़ाइल में stderr आउटपुट करना चाहते हैं। – cHao

+1

क्या यह मदद करता है http://www.xaprb.com/blog/2006/06/06/what-does-devnull-21-mean/ – KK99

+0

@cHao: आपका पॉइंट मिला। – kailash19

उत्तर

7

& मतलब है फ़ाइल वर्णनकर्ता:

मैं की तरह उपयोग कर सकते हैं। तो 2>&1, जो कुछ भी stdout वर्तमान में अंक को stderr पुनर्निर्देश जबकि 2>1 बुलाया 1

इसके अलावा, रीडायरेक्ट क्रम में हो एक फ़ाइल में stderr पुनर्निर्देश। तो यदि आप 2>&1 >/dev/null कहते हैं, तो यह stderr को रीडायरेक्ट करता है कि वर्तमान में कौन सा स्टडआउट इंगित करता है (जो शायद एक नोप है), फिर stdout को/dev/null पर रीडायरेक्ट करता है। आप शायद >/dev/null 2>&1

+0

तो, और एफडी को बताने के लिए। मेरे दिमाग में प्रश्न: तो हमने 2 (stderr) के मामले में इसका उपयोग क्यों नहीं किया है? ओउ खोल जानता है कि 2 (बिना और) एफडी है? – kailash19

+0

आपका क्या मतलब है? वाक्यविन्यास fd> फ़ाइल या fd> और fd है चाहे आप "fd" स्लॉट के लिए किस नंबर का उपयोग कर रहे हों। – tripleee

+1

कैलाश 1 9: उपरोक्त पोस्ट को दोबारा पढ़ें। ध्यान दें कि '... जबकि 2> 1 stderr को 1' नामक फ़ाइल में रीडायरेक्ट करता है। तो इसे आज़माएं: 'printf" xxx \ n "2> 1; एलएस -एल 1'। फ़ाइल वहां है (लेकिन खाली), और आपकी स्क्रीन पर xxx दिखाई दिया। यह कानूनी है, और एक फ़ाइल में stderr आउटपुट को पुनर्निर्देशित करने के लिए उपयोगी है, यानी 'myCmd 2>/tmp/myCmd.stderr.out.txt', है ना? लेकिन यह stdout 'और 1', और stderr 'और 2' के साथ क्या होता है, यह छेड़छाड़ से अलग है। यह एक पूरी तरह सहज ज्ञान युक्त वाक्यविन्यास नहीं है। क्योंकि मुझे इसे अक्सर इस्तेमाल नहीं करना पड़ता है, यहां तक ​​कि एक वर्ष> 10, मुझे अभी भी यह देखना होगा यदि मैं कुछ नया या अलग करना चाहता हूं। आप सभी को शुभकामनायें। – shellter

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