2012-11-16 42 views
23

下列命令之間有什麼區別?「/ dev/null」在shell命令結尾處的含義是什麼

ssh myhostname "command1; command2;...commandn;" 2>/dev/null 
ssh myhostname "command1; command2;...commandn;" 
  1. 是什麼2>是什麼意思?

  2. /dev/null是什麼意思?我在某處讀取命令的結果將寫入文件/dev/null而不是控制檯!這樣對嗎?我覺得這個文件的名字是null

+0

1.「man bash」是一個有趣的讀物。 2.'/ dev/null'是一個特殊的文件,充當黑洞;它不會佔用任何磁盤空間,因爲放入它的所有內容都被放棄。 – axiac

回答

27

2>表示將「標準錯誤」重定向到給定文件。

/dev/null是空文件。任何寫入它的東西都會被丟棄。

他們一起表示「丟棄任何錯誤信息」。

2

'/ dev/null'本質上是指「進入虛空」,丟棄。你提到的2指的是錯誤輸出,它應該被引導。

1

2>表示發送標準誤差的東西

的/ dev/null表示的倉

+2

重定向不是管道。 –

0

1)在標準錯誤管道一切到/ dev/null的(因此忽略它,並且不顯示它)

2)開發null只是指向無處,管任何東西,它消失。

+0

還有其他一些東西存儲在/ dev /中,例如指向文件系統(device ie./dev/sda)的指針和諸如/ dev/random之類的東西,您可以從中讀取以獲取隨機數據。 – BrenanK

+2

沒有涉及的管道。重定向不是管道。 –

+0

你是對的先生!對不起,錯誤的名詞。 – BrenanK

3

1是stdout。 2是stderr。

然後有時你會發現2>&1,這意味着將stderr重定向到標準輸出。

相關問題