Como anexar a saída a um arquivo?

125

Como posso fazer algo do tipo command > fileque ele anexa ao arquivo, em vez de sobrescrever?

Tom Brito
fonte
1
(Há muitos e muitos - talvez demasiados - guloseimas no manual de referência do bash , incluindo todos os tipos de redirecionamentos Ajuste conforme necessário para shell..)
4
Você também pode usar tee, se desejar redirecionar para STDOUT e anexar resultados a um arquivo. Por exemplo: eco "olá" | tee -a somefile.txt, onde o sinalizador -a significa anexar.
Henrik

Respostas:

212

Use >>para acrescentar:

command >> file
Mike Lewis
fonte
103

Sim.

command >> filepara redirecionar apenas stdout de command.

command >> file 2>&1redirecionar stdout e stderr para o arquivo (funciona no bash, zsh)

E se você precisar usar sudo, lembre-se de que apenas

sudo command >> /file/requiring/sudo/privilegesnão funciona, pois a elevação de privilégio se aplica à commandparte de redirecionamento de shell, mas não à shell. No entanto, o simples uso teeresolve o problema:

command | sudo tee -a /file/requiring/sudo/privileges

EdvardM
fonte
6
Estou usando isso para toda a captura de saída program.sh 2> & 1 | tee -a screen.log. "-a" significa anexar.
Xdg 17/07/2014
-3

você pode anexar o arquivo com o sinal >>. Ele insere o conteúdo no último arquivo que estamos usando.

após o processo acima, o myfile contém xyzabc.

user3680358
fonte
4
O >>operador já foi mencionado três anos antes e o OP sabe o que significa anexar.
Dan Dascalescu 13/09/16