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

Postagens mais visitadas deste blog

Script precisa do sudo para dar a permissão ao um comando fazer algo ....

Variável de { . Variável de matriz

Filtragem de strings no terminal