既存のファイルにコマンド出力(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