Comandos_GNU-UNIX
04_Redirecionamento_de_saida
Comando Tee

Comando Tee

O comando tee é uma ferramenta útil em sistemas Unix e Linux que permite redirecionar a saída padrão de um comando para um arquivo e, ao mesmo tempo, exibi-la no terminal. O tee é frequentemente utilizado em pipelines para salvar o resultado de um comando em um arquivo, mantendo a exibição desse resultado no console. Aqui estão alguns conceitos e exemplos-chave relacionados ao tee:

Funcionamento Básico:

  • Redirecionamento Duplo:

O tee redireciona a saída padrão (stdout) de um comando tanto para um arquivo quanto para o terminal.

Exemplos de Uso:

  • Redirecionamento para Arquivo:

ls -l | tee output.txt

Este exemplo lista o conteúdo do diretório atual usando ls -l e salva o resultado no arquivo output.txt ao mesmo tempo.

  • Anexar a um Arquivo Existente:

echo "Novo conteúdo" | tee -a output.txt

O uso da opção -a permite que o tee anexe a saída ao invés de sobrescrever um arquivo existente.

  • Comando com Múltiplas Tubulações:

cat arquivo.txt | grep "padrão" | tee saida.txt | wc -l

Neste exemplo, a saída do comando cat é filtrada por grep e, ao mesmo tempo, é salva no arquivo saida.txt. A contagem das linhas resultantes é exibida no terminal.

  • Saída para o Pipeline e para o Arquivo:

ls -l | tee >(grep "diretorio.txt") | grep "arquivo.txt"

O tee pode ser usado com processos em segundo plano para enviar a saída para múltiplos destinos, incluindo pipelines e arquivos.

Opções Comuns:

a, --append: Anexa à vez de sobrescrever um arquivo existente.

-i, --ignore-interrupts: Ignora sinais de interrupção (Ctrl+C), permitindo que o tee continue a execução mesmo se o terminal receber um sinal de interrupção.

Considerações de Uso:

  • Priorize a Segurança:

Se a entrada do tee for proveniente de fontes não confiáveis, pode haver riscos de injeção de dados. Considere validar ou sanitizar a entrada adequadamente.

  • Compatibilidade com POSIX:

O comportamento específico do tee pode variar entre sistemas Unix. Algumas versões podem ter recursos ou opções específicas que não são universalmente suportados.

O tee é uma ferramenta versátil que oferece flexibilidade no gerenciamento da saída padrão de comandos. Pode ser especialmente útil ao construir pipelines complexos ou ao desejar salvar a saída de um comando em um arquivo para referência futura.