Os operadores de redirecionamento são examinados da esquerda para a direita, portanto
foo > bar 2>&1
primeiro redireciona a saída padrão para bar
e, em seguida, redireciona o erro padrão para o local onde a saída padrão é redirecionada neste ponto (portanto, bar
também).
foo 2>&1 > bar
primeiro redireciona o erro padrão para o qual a saída padrão aponta (provavelmente o terminal) e redireciona a saída padrão para bar
.
Curto: o primeiro redireciona ambos stdout
e stderr
para bar
, o segundo redireciona apenas stdout
para bar
e stderr
para terminal.