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: 106.112 ]

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

Criando um repositório local do Fedora

Instalando um sistema Debian GNU/Linux completo em 20 minutos

Fundamentos do sistema Linux: discos e partições

Aulas particulares: Ganhando dinheiro com Linux

Grip, the GNOME Ripper

Leitura recomendada

A profissão: Programador

SuSE Linux 9.1 - O poderoso e versátil Linux da Novell

Três distros inspiradas no Mac OS

Ética na Programação

Deixando o Ubuntu (ou outra distro) parecido com o Mac OS X

  
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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts