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.