Qual é a diferença entre o redirecionamento 2 e 1 1file.txt e a.txt 2 & 1?

0

Qual é a diferença entre o redirecionamento ./prog 2>&1 1>file.txt e ./prog >a.txt 2>&1 ? Parece que ./prog 2>&1 1>file.txt não salva stderr para arquivo, mas isso ./prog >a.txt 2>&1 faz.

    
por scdmb 26.03.2014 / 22:32

1 resposta

4

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.

    
por 26.03.2014 / 22:35