Como você se lembra da sintaxe do redirecionamento 2>&1

Como você se lembra da sintaxe do redirecionamento 2>&1

Você tem um mnemônico ou sistema? Isso me incomoda há anos, sempre tenho que pesquisar

Responder1

Se você é um programador C, pode pensar em &1"o endereço de 1", como 2>&1se lê "redirecionar o descritor de arquivo nº 2 para o mesmo local que o nº 1".

Responder2

"Dois para e um"("para" ser >) faz mais sentido lógico para mim do que "Dois e para um", que é com o que normalmente posso confundir. Se você considerar "e um" como um único substantivo (um lugar), também faz sentido gramatical no contexto, o que é mais difícil de fazer com "Dois e para um" - você teria que considerar "para um" um único substantivo, e ainda não faria sentido contextual.

Responder3

Não é um mnemônico, mas li da seguinte maneira:

0é stdin. 1é stdout. 2é stderr. >Está em. <está fora. &é o descritor de arquivo (em alguns shells).

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

redirect stderr into stdout

Isso pode mudar se você tiver mexido em algum dos descritores de arquivo antes do redirecionamento...

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. 

Responder4

Lembrei que é sempre 2 -> 1. Stderr para stdout.

A parte do meio é sempre a mais difícil e eu sempre estraguei tudo, até que lembrei que primeiro vem o caractere agudo >, depois o caractere que não consigo escrever na vida real &.

Então nunca 2&>1, sempre2>&1

informação relacionada