Comando tee : Enviar saida do comando para um arquivo
O tee pega a saida do comando e envia para um arquivo.
echo lolota | tee nestout.txt
cat nest R=lolota
O tee é um redirecionador, mas como pode ser visto o echo imprimiu na tela enquanto o tee copiou a saida do echo e mandou para um arquivo.
O redirecionador > também envia a saida do comando para um arquivo só que faz com que o comando não imprima nada na tela.
echo chocolate > output.txt
Por padrão o tee apaga todas linhas primeiro do arquivo para só assim enviar a saida do comando, mas o operador -a diz para o tee não apagar nenhuma linha do arquivo e sim acrescentar novas linhas.
echo chocolate | tee -a output.txt
echo MM | tee -a output.txt
cat output.txt R= chocolate
MM
Mandar mais de um arquivo de saida
echo A1 | tee file1.txt file2.txt
cat file1.txt R= A1
cat file2.txt R= A2
Mandar a saida do comando para o arquivo com permissões elevadas
sudo echo ii > /etc/passwd
R= Permissão negada
O sudo está dando permissão de usuário root ao comando echo, mas o redirecionador > está como usuário normal.
Para resolver isso podemos usar o tee já que podemos colocar o sudo antes do tee para o mesmo ter permissão elevada para enviar a saida do comando para o arquivo /etc/passwd.
echo ii | sudo tee -a /etc/passwd
cat /etc/passwd
* O arquivo recebe o nome de arquivo de saida porque vem da saida do comando.
Comentários
Postar um comentário