どこにでも2>&1
リダイレクトできることを私は知っています。stderr
stdout
- しかし
&
、このシェルコードの意味は何ですか? それは追加演算子ではありませんか? - すべての記述子を標準出力にストリーミングすることは可能ですか?
正確に言うと、オペレーター>&
は、オペレーターの前に記述された記述子を、オペレーターの後に記述された記述子にマージします。
したがって、上で述べたように、オペレーターはであり、それ>&
が何を意味するのかを尋ねて&
も意味がありません。
2 番目の質問については、1 人のオペレーターでは不可能だと思います。必要な操作ごとに繰り返す必要があります。
コンソール アプリの標準/既定の記述子は次のとおりです。
0 - stdin
1 - stdout
2 - stderr
その他は、アプリケーションによって定義できます...
「コンソール」プログラムを作成すると、出力を送信する 2 つの異なるストリーム、stdout と sterr があります。
stout は通常の出力用で、sterr はエラー メッセージを出力するためのもので、デフォルトでは両方ともコンソールに出力されます。「出力」と「エラー」の明確な区分はありませんが、ファイルにリダイレクトする場合は、出力とエラーを 2 つの異なるファイルにリダイレクトできますが、両方を同じファイル (またはパイプ) あなたの最善の策は、stderr を stdout にリダイレクトし、stdout をファイルにダンプすることです
アンパサンドの意味については、 http://en.wikipedia.org/wiki/Ampersand#Unix_shellsを参照してください。