Direcionadores de fluxo fazem o que o nome sugere: direcionam o fluxo da saída dos programas, enviando-as para locais diferentes da saída padrão. Esses locais podem ser arquivos, dispositivos, processos e outros programas. Nesse artigo veremos como utilizar os direcionadores do Linux para facilitar a vida do administrador de sistemas.
Uma função muito útil dos direcionadores é utilizar o conteúdo de arquivos como parâmetros de comandos. Para isso utilizamos o direcionador <. Como exemplo, vamos criar um lista de programas que devem ser executados em seqüência, no arquivo lista.exec, da seguinte forma:
$ cat lista.exec
ls
cat arquivo_inexistente
Agora, utilizamos o comando exec para executar os comandos listados no arquivo lista.exec, da seguinte forma:
$ exec < lista.exec
$ ls
Desktop
doc
img
iso
lista.exec
ls_out
src
teste
tmp
$ cat arquivo_inexistente
cat: arquivo_inexistente: Arquivo ou diretório não encontrado
$ exit
Observe que os comandos ls e cat, listados no arquivo lista.exec, são executados na ordem em que aparecem. No final é executado automaticamente o comando exit.
Outro uso mais útil seria em conjunto com o comando sendmail, para enviar um email cujo conteúdo esteja gravado em um arquivo de texto email.txt, por exemplo:
$ sendmail fulano@email.br < email.txt
Dessa forma não é necessário digitar manualmente todo o conteúdo do email, que já está gravado no arquivo email.txt.
[3] Comentário enviado por davidsonpaulo em 26/06/2006 - 11:21h
Salve, jllitvay!
Bom, você pode fazer o seguinte:
$ [comando] &> /dev/tty2 &
Onde:
* comando: o comando que você quer executar, com todos os parâmetros;
* &> /dev/tty2: envia todas a saída do programa para o tty2 (você tem ue ter permissão de escrita no tty2);
* &: roda o programa em plano de fundo, para que o tty atual fique livre para executar mais comandos.
Eu testei aqui. Abri um terminal gráfico e executei o comando:
# ls -R / &> /dev/tty6 &
O terminal ficou livre e, ao ir para o /dev/tty6, eis que lá estava aparecendo a saída do comando ls -R /.
[5] Comentário enviado por wanderleihuttel em 27/06/2006 - 09:13h
Cara muito bom mesmo este artigo. Não conhecia o "tr", para excluir caracteres. Agora acho que vu conseguir fazer um relatório no meu arquivo secure, bem legal.
[7] Comentário enviado por JuNiOx em 20/07/2006 - 02:29h
algumas partes estão muito parecidas com o guiafoca, a descrição do ">>" está idêntica.
creio que poderia ter citado também nos "créditos" caso tenha retirado de lá também.
[8] Comentário enviado por davidsonpaulo em 20/07/2006 - 17:19h
Descrição do direcionador >>, de acordo com o Guia Foca Linux Iniciante, versão online:
"Redireciona a saída de um programa/comando/script para algum dispositivo ou final de arquivo ao invés do dispositivo de saída padrão (tela). A diferença entre este redirecionamento duplo e o simples, é se caso for usado com arquivos, adiciona a saída do comando ao final do arquivo existente ao invés de substituir seu conteúdo. .
Por exemplo, você pode acrescentar a saída do comando ls ao arquivo listagem do capítulo anterior usando ls / >>listagem. Use o comando cat para visualizar o conteúdo do arquivo listagem."
Sinto muito desapontá-lo, JuNiOx, mas eu não extraí nada do que está nesse artigo do Guia Foca Linux, as diferenças entre os dois textos são gritantes e as semelhanças são coisa da sua cabeça.
[9] Comentário enviado por volcom em 26/08/2009 - 10:52h
Ahhhhh!!
Eu já estava usando tooooodos os direcionadores, mas o tee me salvou a pele pra executar um Script enviando as mensagens para a tela e para o arquivo de log ao mesmo tempo...
Ops, mas o tee sobrescreve o arquivo anterior...para resolver isso usei a opção tee -a para ele adicionar/concatenar o conteúdo!
[13] Comentário enviado por crivellari em 22/07/2014 - 09:08h
Olá tenho uma pequena dúvida
O direcionador 2>&1 é igual a &> (pelo menos fazem a mesma função)
Pelo que vejo nos exemplos e descrição que procurei na net. Quando usar um e quando usar ou outro?
Agradeço antecipadamente pela ajuda.
Um grande abraço
Crivellari