Redirecionamento de bash: anexado a um descritor de arquivo (2 e 1)

3

Estou tentando anexar a saída de um comando (stdout e stderr) a um arquivo existente.

O que estou tentando fazer é algo assim:

command >>file 2>>&1

O problema é que 2>>&1 gera um erro, mas >>file 2>>file não.

Então, acho que estou entendendo mal como o redirecionamento funciona, ou o que é um descritor de arquivo e quais informações são salvas nele.

Resumindo, qual é a diferença entre os dois comandos a seguir e por que o primeiro não funciona, mas o segundo funciona?

command >>file 2>>&1      #not working
command >>file 2>>file    #working

Obrigado

    
por marolafm 02.11.2017 / 13:03

2 respostas

6

O que você quer fazer é configurar o descritor de arquivo 1 (stdout) para anexar a um arquivo e, em seguida, redirecionar o fd 2 (stderr) para simplesmente fazer o que o fd 1 está fazendo.

command >>file 2>&1

Você recebe um erro com 2>>&1 , simplesmente porque >>& não é um operador de redirecionamento.

Leia Redirecionamentos no manual do bash, particularmente as seções 3.6.5 e 3.6. 8

    
por 02.11.2017 / 13:40
3

Como isso é marcado com bash , você pode usar &>> para redirecionar (anexar) stdout e stderr.

command &>>file

    
por 07.11.2017 / 01:25