Não estou claro qual é a melhor ordem para capturar ambos STDERR
e STDOUT
para o mesmo arquivo usando tee
. Eu sei que se eu quiser canalizar para um arquivo, tenho que mapear o tratamento de arquivos após o redirecionamento, ou seja,
find . >/tmp/output.txt 2>&1
Isso instrui o shell para enviar STDOUT
para /tmp/output.txt
e, em seguida, enviar STDERR
para STDOUT
(que agora está enviando a /tmp/output.txt
).
Tentar executar o 2>&1
antes de redirecionar o arquivo não terá o efeito desejado.
No entanto, quando eu quero canalizar usando tee
deveria ser:
find . |tee /tmp/output.txt 2>&1 # or
find . 2>&1 |tee /tmp/output.txt # ?
|&
for usado, o erro padrão do comando1 será conectado à entrada padrão do comando2 através do canal; é uma abreviação de2>&1 |
. Esse redirecionamento implícito do erro padrão é realizado após qualquer redirecionamento especificado pelo comando".