Redirecionamentos, Pipes e Fluxos

Redirecionamentos, Pipes e Fluxos utilizados no cotidiano de forma prática. Artigo realizado com o intuito de aproximar os usuários mais novatos com o terminal e agilizar seu entendimento e uso com o mesmo.

[ Hits: 6.893 ]

Por: Jefferson em 22/10/2018


Pipes e Fluxos



Um recurso muito utilizado é o PIPE, também chamado por alguns de canalização. Este recurso é sempre acompanhado por comandos, nunca utilizado sozinho. Sua função é ligar o STDOUT de um comando/programa ao STDIN de outro, resumindo, pegar a saída de um comando e adicionar como entrada de outro comando, fazendo com que a saída do comando não vá para a tela e sim para o próximo comando.

cat entrada | tr 'a-z' 'A-Z' : substitui todos as letras minúsculas em maiúsculas;

Outro exemplo muito utilizado com PIPES é o comando find:

find / -name arquivo | cpio -o | gzip > lista_arquivo.cpio.gz

O find será responsável de procurar por arquivo a partir da raiz do sistema, no STDOUT, o mesmo será enviado para o arquivo lista_arquivo.cpio e na finalização, o GZIP atuará e compactará o arquivo para lista_arquivo.cpio.gz.

Há centenas de exemplos utilizados com PIPE como STDOUT e STDIN, conforme aprendendo, verás de que é capaz de muita coisa!

Já na parte de fluxos de I/O, mencionarei alguns comandos de que trabalham com os STDOUTs e STDINs.

Um exemplo prático e muito utilizado é o comando tee, normalmente é utilizado juntamente com o PIPE. Esse é responsável por imprimir as informações na tela e ainda redirecioná-lo para o arquivo de destino:

ls -l * | tee ListaMeuDiretório.txt

Com o tee também é possível redirecionar a saída do comando para outra tela, esses itens podem ser verificados em outros artigos publicados aqui no VOL.

Outro comando muito utilizado juntamente com o PIPE para tratamento de fluxos é o xargs.

xargs permite executar o comando a partir da saída de outro, há muitas opções e argumentos, porém mencionarei o básico para apresentação dos fluxos:

No exemplo do find, após encontrar o arquivos e tentar remove-lo, verás de que o mesmo não remove. Para isso, é necessário utilizar o comando xargs, ele será responsável por executar o comando na saída do comando anterior, conforme imagem abaixo:
find -name Arquivos_Gerente | xargs rm -f

Outro exemplo com o xargs facilmente visualizado:

find -name Arquivos_Gerente | xargs ls -l

Perceba que na imagem foi digitado o primeiro comando sem o xargs e o segundo, inserindo-o. A saída de ambos os comandos são completamente diferentes, no primeiro, ele fez o ls -l como um comando sem saída anterior, ou seja, mostrou todos os itens do diretório atual; já com a inserção do xargs, o mesmo utilizou o STDOUT como STDIN do ls -l, fazendo com que liste apenas o requerido item.

Bom pessoal, essa foi minha primeira contribuição com o fórum, a fim de ajudar assim como fui ajudado por todos!

Espero que tenham gostado, qualquer dúvida, estou à disposição.

Página anterior    

Páginas do artigo
   1. Redirecionadores de Saída - STDIN, STDOUT e STDERR
   2. Redirecionadores de Entrada
   3. Pipes e Fluxos
Outros artigos deste autor

Instalação da Plataforma Hadoop

Leitura recomendada

Expressões regulares no Bash : parte I

Monitorar servidores e enviar alertas por e-mail e SMS

Definição automática de wallpaper em função do horário

Recebendo seu IP dinâmico via email

Utilizando "expr" para "String Matching" através de expressões regulares em shell

  
Comentários
[1] Comentário enviado por eduardo em 23/10/2018 - 11:13h

Ótimo artigo Jefferson, parabéns!

[2] Comentário enviado por jeffersonmartins em 23/10/2018 - 18:41h


[1] Comentário enviado por eduardo em 23/10/2018 - 11:13h

Ótimo artigo Jefferson, parabéns!


Muito Obrigado Eduardo!!

[3] Comentário enviado por amaurybsouza em 25/10/2018 - 08:39h

Muito bom o seu artigo, estou revendo o que eu aprendi sobre redirecionamentos para a prova LPI-1.

[4] Comentário enviado por Levi linux em 02/11/2018 - 22:29h

Parabéns! Muito útil.

[5] Comentário enviado por jeffersonmartins em 02/11/2018 - 23:41h


[3] Comentário enviado por absouza em 25/10/2018 - 08:39h

Muito bom o seu artigo, estou revendo o que eu aprendi sobre redirecionamentos para a prova LPI-1.


Obrigado! O intuito que criei é justamente para aprendizado; estou em processo de estudos para a LPI também rs. Bora lá!

[6] Comentário enviado por jeffersonmartins em 02/11/2018 - 23:41h


[4] Comentário enviado por Levi linux em 02/11/2018 - 22:29h

Parabéns! Muito útil.


Muito obrigado Levi!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts