stdoutをstderrに置き換える

stdoutをstderrに置き換える

stdoutに送信されたテキストがstderrのテキストに置き換えられるように、コマンド出力をリダイレクトできますか?

$ ./script
this line is redirected to stdout
this line is redirected to stderr

$ ./script (insert redirections here)
this line is redirected to stderr

私は利用できることを知っていますが、1>/dev/nullこれを行うためにテキストをstderrからstdoutにリダイレクトする方法があるかどうか疑問に思います。

ベストアンサー1

次のことができます。

./script 2>&1 1>/dev/null

これは、fd 2をfd 1が指すもの(つまりstdout)にリダイレクトし、次にfd 1をにリダイレクトします/dev/null。 2番目のリダイレクトは最初のリダイレクトに影響を与えず、fd 2の出力はに送信されますstdout

しかし、順序は重要です。これで:

./script 1>/dev/null 2>&1

すべての出力はに送信されます/dev/null

おすすめ記事