Fundamentos do sistema Linux - direcionadores

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.

[ Hits: 94.032 ]

Por: Davidson Rodrigues Paulo em 26/06/2006 | Blog: http://davidsonpaulo.com/


O comando tee



O tee não é um direcionador, mas um utilitário. Quando usado junto com o pipe |, o tee permite que a saída padrão do comando seja exibida na tela e enviada para um arquivo ao mesmo tempo.

Usamos o tee da seguinte maneira:

$ [comando] | tee [arquivo]

Como exemplo, vamos usar o comando ls -la, para direcionar a saída para o arquivo listagem.txt e também exibir essa listagem na tela:

$ ls -la | tee listagem.txt
total 22
drwxrwxrwt   9 root     root      552 2005-03-15 10:27 .
drwxr-xr-x  22 root     root      648 2005-03-08 23:17 ..
drwxrwxrwt   2 root     root       72 2005-03-15 09:14 .font-unix
drwx------   3 davidson davidson   72 2005-03-15 09:14 gconfd-davidson
srw-rw-rw-   1 root     root        0 2005-03-15 09:14 .gdm_socket
drwxrwxrwt   2 root     root       72 2005-03-15 09:14 .ICE-unix
drwx------   2 davidson davidson   72 2005-03-15 09:14 keyring-odX4hA
srwxr-xr-x   1 davidson davidson    0 2005-03-15 09:14 mapping-davidson
drwx------   2 davidson davidson  784 2005-03-15 09:58 orbit-davidson
srwxr-xr-x   1 davidson davidson    0 2005-03-15 09:37  
OSL_PIPE_1000_SingleOfficeIPC_ff8339d55527632257ddc22a30644d3f
-rw-------   1 davidson davidson 8885 2005-03-15 10:26 redirecionamento-e-pipe.sxw
drwx------   2 davidson davidson  176 2005-03-15 10:35 sv5g2.tmp
-r--r--r--   1 root     root       11 2005-03-15 09:14 .X0-lock
drwxrwxrwt   2 root     root       96 2005-03-15 09:14 .X11-unix
-r--r--r--   1 root     root       11 2005-03-15 09:14 .X64-lock
srwxr-xr-x   1 davidson davidson    0 2005-03-15 09:23 xmms_davidson.0

$ cat listagem.txt
total 22
drwxrwxrwt   9 root     root      552 2005-03-15 10:27 .
drwxr-xr-x  22 root     root      648 2005-03-08 23:17 ..
drwxrwxrwt   2 root     root       72 2005-03-15 09:14 .font-unix
drwx------   3 davidson davidson   72 2005-03-15 09:14 gconfd-davidson
srw-rw-rw-   1 root     root        0 2005-03-15 09:14 .gdm_socket
drwxrwxrwt   2 root     root       72 2005-03-15 09:14 .ICE-unix
drwx------   2 davidson davidson   72 2005-03-15 09:14 keyring-odX4hA
srwxr-xr-x   1 davidson davidson    0 2005-03-15 09:14 mapping-davidson
drwx------   2 davidson davidson  784 2005-03-15 09:58 orbit-davidson
srwxr-xr-x   1 davidson davidson    0 2005-03-15 09:37
OSL_PIPE_1000_SingleOfficeIPC_ff8339d55527632257ddc22a30644d3f
-rw-------   1 davidson davidson 8885 2005-03-15 10:26 redirecionamento-e-pipe.sxw
drwx------   2 davidson davidson  176 2005-03-15 10:35 sv5g2.tmp
-r--r--r--   1 root     root       11 2005-03-15 09:14 .X0-lock
drwxrwxrwt   2 root     root       96 2005-03-15 09:14 .X11-unix
-r--r--r--   1 root     root       11 2005-03-15 09:14 .X64-lock
srwxr-xr-x   1 davidson davidson    0 2005-03-15 09:23 xmms_davidson.0

Como podemos ver, a saída padrão do comando ls -la foi exibida na tela, ao mesmo tempo em que foi enviada para o arquivo listagem.txt. Pode-se usar isso em caso de dúvidas quanto ao tamanho das mensagens exibidas pelo sistema.

Página anterior    

Páginas do artigo
   1. Introdução
   2. O direcionador >
   3. O direcionador 2>
   4. O direcionador &>
   5. Os direcionadores >>, 2>> e &>>
   6. O direcionador <
   7. O direcionador <<
   8. O direcionador |
   9. O comando tee
Outros artigos deste autor

Aulas particulares: Ganhando dinheiro com Linux

Dual-boot: instalando o Windows depois do Linux

Seu Slackware atualizado com SWARET

Fundamentos do sistema Linux - Gerenciadores de inicialização

Fundamentos do sistema Linux - hardware

Leitura recomendada

Sistemas Operacionais, Kernel e Shell

Distribuições GNU/Linux em computadores limitados ou antigos

Alternativas ao Flash Player no openSUSE

Implementando um Servidor Web Java com Tomcat no Debian

As mais frequentes pesquisas no Google sobre Linux

  
Comentários
[1] Comentário enviado por JuNiOx em 26/06/2006 - 09:51h

muito bom, bem explicado.
direcionadores é matéria para LPI, caso alguém tiver interesse.

valeu

[2] Comentário enviado por jllitvay em 26/06/2006 - 10:58h

Muit bom o artigo, mas , me ajudem:

Como eu executo um comando em um terminal tty1
mas que a execução e saída do comando se dê no tty2.

Obrigado

[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 /.

Abraços,

Davidson


[4] Comentário enviado por removido em 26/06/2006 - 14:35h

Muito bom artigo sobre um tema pouco abordado. Bastante oportuno.

[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.

Valeu

[6] Comentário enviado por agk em 28/06/2006 - 09:03h

Parabéns, muito bom esse artigo.

[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.

até mais

[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."

http://www.guiafoca.org/guia/iniciante/ch-redir.htm#s-redir-maior2

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!

Muito bom!

[10] Comentário enviado por doradu em 08/02/2010 - 18:52h

marquei pra ler mais tarde

[11] Comentário enviado por gilsoncwb em 09/01/2012 - 16:35h

Muito legal seu exemplo , parabens !

[12] Comentário enviado por gustavo_logicus em 28/04/2013 - 12:16h

Muito bacana o artigo! Parabéns!

[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


Contribuir com comentário