web-dev-qa-db-ja.com

2> / dev / nullはどういう意味ですか?

次のコマンドラインについて簡単に説明します。

grep -i 'abc' content 2>/dev/null 
230
Naive

>演算子は、通常、出力をファイルにリダイレクトしますが、デバイスに出力することもできます。 >>を使用して追加することもできます。

数値を指定しない場合、標準出力ストリームが想定されますが、エラーをリダイレクトすることもできます

> fileは標準出力をファイルにリダイレクトします
1> fileは標準出力をファイルにリダイレクトします
2> fileはstderrをファイルにリダイレクトします
&> fileは、stdoutとstderrをファイルにリダイレクトします

/dev/nullは、必要な入力を取得して破棄するヌルデバイスです。出力を抑制するために使用できます。

333
Warren Hill

つまり、stderr(fd 2)をブラックホールにリダイレクトします(コマンドの出力を破棄します)。

リダイレクトの一般的な使用例:

command > /dev/null 2>&1 &

バックグラウンドでcommandを実行し、stdoutとstderrを破棄します

command >> /path/to/log 2>&1 &

commandを実行し、ログファイルにstdoutとstderrを追加します。

26
Terry Wang

/dev/nullはLinux/Unixではブラックホールとして扱われるため、これに何かを入れることはできますが、/dev/nullから戻すことはできません。

さらに、2>は、stderr(つまり>)をブラックホール(つまり2)にリダイレクト(つまり/dev/null)していることを意味します

あなたのコマンドは:

grep -i 'abc' content 2>/dev/null 

このような別のスラッシュで終了しようとしないでください-2>/dev/null/(ディレクトリではありません)。

9
Indrajeet Gour

grep -i 'abc'コンテンツは、エラーを含むコンソールに表示される出力を生成します。

2>/dev/nullを指定すると、エラーが除外され、コンソールに出力されなくなります。

より詳細には:2はエラー記述子を表し、エラーが書き込まれる場所です。デフォルトでは、コンソールに出力されます。

\>は、指定された場所、この場合は/dev/nullに出力をリダイレクトします

/dev/nullは、無視する出力を送信する標準のLinuxデバイスです。

2
Mauro Zallocco