Existe uma maneira de redirecionar a saída de um programa e ainda tê-lo em stdout?

23

Ok. Se eu quisesse redirecionar a saída de um programa para um arquivo, faria algo assim

prog > file

Se eu quisesse redirecionar stdout e stderr para esse arquivo, eu faria

prog > file 2>&1

Tudo isso é bom se você quiser que a saída vá para o arquivo. Mas e se você quiser que a saída vá para o arquivo e ainda assim vá para stdout / stderr? Assim, a saída é salva no arquivo, mas você ainda pode vê-lo no console enquanto o programa está sendo executado. Existe uma maneira de fazer isso? E se sim, como?

    
por Jonathan M Davis 18.11.2010 / 20:26

1 resposta

38

tee existe para este propósito; ele recebe um argumento de nome de arquivo e grava os dados que lê do stdin para o stdout e o arquivo:

$ prog 2>&1 | tee file
    
por 18.11.2010 / 20:37