Grava a saída do comando em um arquivo e para std out / error

0

Eu tenho um comando que eu corro muito e gosto de direcionar a saída para um arquivo. Eu faço assim:

runFooBar > output.txt 2>&1

Existe uma maneira que eu posso escrever a saída runFooBar para o arquivo output.txt enquanto ainda é capaz de ver a saída na saída padrão / erro enquanto o comando está sendo executado?

Eu executo isso em máquinas Linux e OS X.

    
por Nosrettap 18.12.2015 / 03:45

2 respostas

3

Use o comando "tee".

echo hi | tee ./file.txt

O comando "tee" pega a entrada padrão e a redireciona para o arquivo especificado e para o padrão. É chamado 'tee' após a junção em forma de T no encanamento (tubulação).

    
por 18.12.2015 / 03:53
1

A maneira de redirecionar a saída padrão e o erro padrão para o arquivo same é:

echo Hello 2>&1 | tee some_file.txt

Isso colocará os dois no mesmo arquivo. Talvez você queira colocá-los em arquivos separados . Você pode conseguir isso com um recurso de Bash, substituição de processo , da seguinte forma:

echo Hello > >(tee standard_output.txt) 2> >(tee standard_error.txt >&2)
    
por 18.12.2015 / 08:28