2012-11-16 10 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. 'man bash'は興味深い読書です。 2. '/ dev/null'はブラックホールとして機能する特別なファイルです。それに格納されているものはすべて実際には破棄されるため、ディスク領域は必要ありません。 – axiac

答えて

27

2>は、指定されたファイルに "リダイレクト標準エラー"を意味します。

/dev/nullはヌルファイルです。それに書き込まれたものはすべて破棄されます。

これらは一緒に「すべてのエラーメッセージを捨てる」という意味です。

2

'/ dev/null'は、本質的に「無効になった」ことを意味します。あなたが言及した2は、エラー出力を指しています。

1

2>何か

は/ dev/nullに、標準エラーを送信すること

+2

リダイレクションはパイプではありません。 –

0

1ビンを意味意味は)は/ dev/nullに標準エラーにパイプのすべて(ので、それを無視して、それを表示しません)

2)Dev nullはどこにも指しておらず、何かをパイプして消えます。

+0

ファイルシステムへのポインタ(デバイスie/dev/sda)や、/ dev/randomのような、ランダムなデータを取得するために読むことができるものなど、/ dev /には他にも格納されているものがあります。 – BrenanK

+2

パイプが関与していません。リダイレクションはパイプではありません。 –

+0

あなたは正しいです!申し訳ありませんが、間違った言葉。 – BrenanK

3

1は標準出力です。 2は標準偏差です。

時々2>&1が見つかることは、stderrをstdoutにリダイレクトすることを意味します。

関連する問題