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.289 ]

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

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

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

Expressões regulares no Bash : parte I

Monitorar servidores e enviar alertas por e-mail e SMS

Operadores de redirecionamento

  
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