簡単に言えば、「>&」とは何ですか? [コピー]

簡単に言えば、「>&」とは何ですか? [コピー]

$ command 1>&2効果は何ですか?私が理解しているところによると、これは実行されますがcommandSTDOUTにリダイレクトされますSTDERR。しかし、それがどのように機能するのか正確にはわかりません>&

$ command 1>&2私はそれを来ると思います$ command 2>&1

私は1それぞれが と のファイル記述子であると仮定します2が、それが何を意味するのかさえわかりません。STDOUTSTDERR

私はSOや他のリソースから>&何らかのリダイレクト「モノ(オペレータ??)」を見つけましたが、それが正確にどのように機能するのかわかりません。バイナリ演算子ですか?それも通信会社ですか?

誰かがこれを説明できますか?初心者これが実行するアクションの用語です。

ベストアンサー1

1この構文では、STDOUTとSTDERRが正しいです2。その役割は「AをBのある所に送ること」です。したがって、を作成してSTDERRをインポートしてSTDOUTに送信すること2>&1もできます。2 > &1元のSTDOUTである必要はありません。実際は一つの単位ではなく>&、しばしばそのように一緒に作成されます。これが>「リダイレクト」演算子です。

面白い部分は注文です。たとえば、次のようになります。

$ command 2>&1 > file.out

とは違う

$ command > file.out 2>&1

1 つ目は STDERR を STDOUT に送り、STDOUT を "file.out" に送るので、STDERR と STDOUT を同じ場所に取得します。 2つ目はSTDOUTを「file.out」に送信し、STDERRをSTDOUTに送信するため、最終的にはファイルではなく端末ウィンドウにSTDERRが表示されます。

おすすめ記事