エラーを常に/ dev / nullにリダイレクトします


22

/dev/null次の構文を使用して、コマンドからエラーメッセージをリダイレクトできることを知っています。

command arg1 arg2 2>/dev/null

しかし、デフォルトでこれを行う方法はありますので/dev/null、特に指定しない限り、エラーメッセージは常にに移動しますか?


1
要するに:はい-/ dev / stderrを/ dev / nullにリダイレクトします。しかし、自分で理解できない場合は、成功するよりも致命的なものを壊す可能性が高いため、試してはいけません。
ベヌバード

@Benubird stderr!= / dev / stderr。そのファイルをリダイレクトしても何も起こりません。/ dev /のファイルは便宜上のものです。
クリスダウン

@ChrisDownそうですね、/ dev / stderrは単なるリンクです。それでも、多くのプロセスがfd / 2の代わりにfd / 2に書き込みます。これもリダイレクトできます。そこからさらに複雑になります-それが、答えではなくコメントを残した理由です:)。
ベヌバード

回答:


29

多くのプログラムは、実際にはエラーを示すものではない出力をstderrに送信します。たとえば、一部のプログラムでは、プログラムの出力(別のプログラムにパイプされるように設計されている)に影響する情報を表示するために使用されます。ただし、これを行うことができます。

exec 2>/dev/null

スクリプトの外でこれを行うことはお勧めしません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.