Eu gostaria de redirecionar toda a saída dos comandos que executei para um arquivo, além de tê-los impressos na tela.
Eu quero que isso aconteça automaticamente, eu não quero canalizar tee
toda vez que eu fizer isso.
Tentei exec | tee file
, mas não funciona. Como faço para fazer isso?
Este é o Bash, então PROMPT_COMMAND
também está disponível.
Você poderia fazer algo assim:
Isso redirecionaria a saída do shell e os fluxos de erro para a substituição do processo
>(tee logfile)
, o que o salvarialogfile
enquanto também os enviava para o terminal.Como o usuário mosvy aponta corretamente nos comentários abaixo , qualquer saída do programa seria produzida como se fosse redirecionada para um arquivo. Se um utilitário faz a diferença entre a saída para um arquivo e para um dispositivo terminal, haverá uma diferença na saída do que você pode esperar. Alguns programas que requerem um terminal podem não funcionar.
Você também pode usar o
script
utilitário que por si só inicia um shell interativo que é registrado em um arquivo. Consulte o manual parascript
.