
Redirecionamentos e Pipe
Abril 27, 2008No linux temos varias formas de redirecionar a saida de comandos no Shell, vamos falar um pouco sobre eles.
O redirecionamento “>”
Muda a saida de um comando, script ou arquivo para algum dispositivo ou arquivo.
Exemplos:
# echo 123 > novo_arquivo.txt
Este comando através do comando echo escreve 123 dentro do arquivo novo_arquivo.txt. Note que poderia ser um arquivo que ja existe, mas isto substituiria o conteudo existente dentro deste arquivo.
# ls -1 > listagem.txt
O comando ls -1 gera uma lista simples dos arquivos e pastas contendo no diretorio atual, e o redirecionador “>” grava esta saida no arquivo listagem.txt
# cat arquivo1.txt > /dev/tty2
Manda a saida do comando cat para o console 2.
O redirecionamento “>>”
Faz basicamente a mesma coisa que o “>” , a difereça é que se for um arquivo ele acrescenta ao final do arquivo a saida.
#ls -1 >> listagem.txt
Adiciona ao final do arquivo a saida do ls -1.
O redirecionamento “<”
Direciona a entrada padrão de arquivo/dispositivo para um comando. Este comando faz o contrário do anterior, ele envia dados ao comando.
Você pode usar o comando cat <teste.txt para enviar o conteúdo do arquivo teste.txt ao comando cat que mostrará seu conteúdo (é claro que o mesmo resultado pode ser obtido com cat teste.txt mas este exemplo serviu para mostrar a funcionalidade do <).
O redirecionamento “<<”
Este redirecionamento serve principalmente para marcar o fim de exibição de um bloco. Este é especialmente usado em conjunto com o comando cat, mas também tem outras aplicações. Por exemplo:
# cat << final
este arquivo
será mostrado
até que a palavra final seja
localizada no inicio da linha
final
Pipe “|“
Envia a saída de um comando para a entrada do próximo comando para continuidade do processamento. Os dados enviados são processados pelo próximo comando que mostrará o resultado do processamento. Exemplos:
# ls -lrt | grep arquivo*
Lista por todos os arquivos que começem com arquivo.
#cat arquivo1.txt | grep palavra
Mostra somente as linhas do arquivo1.txt que contenham palavras.
#ls -lrt | more
Mostra na saida padrão o ls efetuando pausas de 25 linhas em 25 linhas.
tee
Envia o resultado do programa para a saída padrão (tela) e para um arquivo ao mesmo tempo. Este comando deve ser usado com o pipe “|”.
comando|tee [arquivo]
Exemplo: ls -la|tee listagem.txt, a saída do comando será mostrada normalmente na tela e ao mesmo tempo gravada no arquivo listagem.txt.
Obs: Parte deste post foi obtido como exemplo do: http://focalinux.cipsga.org.br/guia/inic_interm/ch-redir.html