2>&1 リダイレクトの構文をどうやって覚えますか?

2>&1 リダイレクトの構文をどうやって覚えますか?

記憶術やシステムはありますか?これは何年も私を悩ませてきました。いつも調べなければなりません

答え1

C プログラマーであれば、 を&1「アドレス 1」と考えることができるので、2>&1「ファイル記述子 #2 を #1 と同じ場所にリダイレクトする」と読みます。

答え2

「2対1」(「to」は>) の方が、私には「Two and to one」よりも論理的に意味が通っているように思えます。私は「Two and to one」とよく混同してしまいます。「and one」を単一の名詞 (場所) と見なすと、文脈上も文法的に意味をなしますが、「Two and to one」の場合はそうするのが難しくなります。「to one」を単一の名詞と見なす必要があり、それでも文脈上は意味をなさないからです。

答え3

記憶術ではありませんが、次のように読みます。

0は stdin です。 1は stdout です。 2は stderr です。 >は into です。 <は out of です。 &はファイル記述子 (一部のシェルの場合) です。

2>&1
2      >    &               1
stderr into file descriptor 1

redirect stderr into stdout

リダイレクト前にファイル記述子のいずれかを変更した場合は変更される可能性があります...

2>somefile 1>&2
2      >    somefile     1      >    &2
stderr into somefile and stdout into file descriptor 2

redirect stderr into somefile and stdout into somefile. 

答え4

常に 2 -> 1 であることを思い出しました。Stderr から stdout へ。

真ん中の部分はいつも難しくて、いつも失敗していたのですが、最初に鋭い文字が来て>、次に現実には書けない文字が来ることを思い出しました&

だから決して2&>1、いつも2>&1

関連情報