Bash リダイレクト: ファイル記述子に追加 (2>>&1)

Bash リダイレクト: ファイル記述子に追加 (2>>&1)

既存のファイルにコマンド出力(stdoutとstderr)を追加しようとしています。

私がしたいのはこれです:

command >>file 2>>&1

問題は2>>&1エラーが発生しますが、>>file 2>>fileそうでないことです。

そのため、リダイレクトがどのように機能するのか、ファイル記述子が何であるか、その中に含まれる情報が何であるかを誤って理解しているようです。

要約すると、次の2つのコマンドの違いは何ですか?最初のコマンドは機能しませんが、2番目のコマンドが機能するのはなぜですか?

command >>file 2>>&1      #not working
command >>file 2>>file    #working

ありがとう

ベストアンサー1

あなたがしたいのは、ファイル記述子1(stdout)を設定してファイルに追加し、fd 2(stderr)をリダイレクトしてfd 1が実行する操作を実行することです。

command >>file 2>&1

リダイレクト演算子ではない2>>&1ため、エラーが発生します。>>&

読むリダイレクトBashのマニュアルでは、特にセクション3.6.5および3.6.8

おすすめ記事