コマンドの出力(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(stdout)を設定してファイルに追加し、fd 2(stderr)をリダイレクトして、fd 1が行っていることを単純に実行します。
command >>file 2>&1
2>>&1
がリダイレクト演算子ではないため、>>&
でエラーが発生します。
Bashマニュアルの Redirections 、特にセクション3.6.5および3.6.8をお読みください