>& はどういう意味ですか? 質問する

>& はどういう意味ですか? 質問する

私はこの表現に少し戸惑いました:

gcc -c -g program.c >& compiler.txt

&>filenamestdoutとstderrの両方をファイルにリダイレクトすることはわかっていますfilename。しかし、この場合、アンパサンドは大なり記号。 という形式になっているようです。M>&Nここで、MNはファイル記述子です。

上記のスニペットでは、M=1と を実行しますかN='compiler.txt'? これは、次のコードと具体的にどう違うのでしょうか:

gcc -c -g program.c > compiler.txt     (ampersand removed)

私の理解では、開いている各ファイルは 2 より大きいファイル記述子に関連付けられています。これは正しいですか?

もしそうなら、ファイル名はリダイレクトのターゲットとしてそのファイル記述子と交換可能でしょうか?

ベストアンサー1

これは と同じです&>。bash のマニュアルページから:

標準出力と標準エラーのリダイレクト この構造により、標準出力 (ファイル記述子 1) と標準エラー出力 (ファイル記述子 2) の両方を、word の展開名を持つファイルにリダイレクトできます。

There are two formats for  redirecting  standard  output  and  standard
error:

       &>word
and
       >&word

Of the two forms, the first is preferred.  This is semantically equiva-
lent to

       >word 2>&1

おすすめ記事