Leitores como você ajudam a apoiar o MUO. Quando você faz uma compra usando links em nosso site, podemos ganhar uma comissão de afiliado. Consulte Mais informação.

O Linux permite armazenar a saída do comando em arquivos como um meio de redirecionamento de saída. Quando você salva a saída em um arquivo usando o > ou >> operadores, a saída é redirecionada sem nenhuma informação exibida no terminal.

Mas e se você quiser imprimir a saída na tela e armazená-la em um arquivo simultaneamente? Embora não seja possível fazer isso com os operadores de redirecionamento de saída, é possível fazer isso usando o comando tee no Linux.

Sintaxe Básica de Comando

tee é um utilitário Linux padrão usado para dividir a saída de um comando entre a saída padrão e os arquivos.

Ao contrário da maioria dos comandos do Linux, tee é usado com outros programas usando um pipe (|). O operador de tubulação - um dos muitos operadores de linha de comando no Linux - permite que um programa use a saída de outro comando como entrada. Você pode ter usado pipe ao usar grep ao lado o comando ls ou gato.

A sintaxe básica do comando tee é:

comando | caminho do arquivo de opções do tee

...onde opções e caminho de arquivo são os argumentos da linha de comando e o caminho para o arquivo no qual você deseja armazenar a saída.

Saída de terminal dividida no Linux com tee

O uso mais simples do tee é dividir a saída para exibi-la no terminal, bem como armazená-la em um arquivo. Por exemplo, para armazenar a saída do comando ls em um arquivo de texto chamado "output.txt," correr:

ls | tee ./output.txt

A saída exibirá o conteúdo do diretório de trabalho atual como de costume. Ao verificar o arquivo output.txt, você descobrirá que tee também salvou a saída no arquivo.

Quando você especifica um caminho de arquivo, tee verifica se o arquivo existe. Se não encontrar um, ele cria automaticamente o arquivo para você, tornando-o conveniente para uso em scripts de shell. É útil quando você deseja registrar a saída de um programa ou script para referência posterior.

Você terá que preceder o comando tee com sudo para ler ou armazenar dados em um arquivo de propriedade do usuário root.

Se o arquivo especificado tiver dados armazenados que você não deseja sobrescrever, use o -a sinalizar para acrescentar a saída para o arquivo, em vez de limpar o arquivo inteiro e salvar os dados:

ls | tee -a ./output.txt

Da mesma forma, você pode redirecionar a saída para vários arquivos especificando os caminhos, separados por espaços simples:

ls | tee ./output1.txt ./output2.txt

Às vezes, erros inesperados ou interrupções manuais (usando Ctrl + C ou Ctrl + Z) no comando anterior pode fazer com que o tee saia. Para ignorar tais interrupções, use o -eu bandeira:

ls | tee -i output.txt

Para obter ajuda de linha de comando sobre tee ou encontre os detalhes da versão, use o --ajuda e --versão bandeiras da seguinte forma:

tee --ajuda
camiseta --versão

Redirecionando a saída para outro comando

Você pode criar uma cadeia de saída conectando T com outros comandos do Linux. Fazer isso salvará a saída no arquivo especificado e, em seguida, passará para o próximo comando para processamento.

Use o seguinte formato para redirecionar a saída do tee para outro comando:

comando | caminho de arquivo tee | outro comando

Por exemplo, o comando a seguir salvará a saída do comando ls em output.txt antes de finalmente redirecioná-lo para grep para uma pesquisa rápida:

ls | tee output.txt | grep "Documentos"

No geral, você pode usar o comando tee para brincar com a entrada e saída padrão no Linux.

Manipulando saída e texto com comandos do Linux

O comando tee adiciona funcionalidade muito necessária aos operadores de redirecionamento de saída padrão no Linux. Você pode até mesmo usá-lo para manipular a saída de um comando antes de passá-lo para outro programa.

Da mesma forma, você pode modificar o texto usando o terminal com a ajuda de alguns comandos padrão do Linux. Eles podem levar algum tempo para se acostumar, mas, no final, vale a pena aprender a manipulação de texto por meio da linha de comando para qualquer administrador de sistema.