-
Gabarito B
O pipe no shell, faz com que eu possa jogar um comando, para dentro de outro!!
Ihh.. enrolou tudo. Vamos explicar melhor: todo comando no Linux, irá mostrar um resultado que chamamos de “saída do comando”.
E essa saída do comando sempre irá aparecer na tela (monitor) que é a saída padrão.
O pipe, tem o poder de fazer com que a saída de um comando não vá para a tela, e sim para o outro comando;
O nosso ls recursivo passou tudo muito rápido! Então, vamos usar o comando more para paginar!
Vejam:
# ls /R | more
Agora sim, o ls vai esperar um a cada tela cheia! Fazendo uma comparação, (uiiiii!) o more aqui funcionaria como a opção -p do comando dir usado no DOS!
E usamos o | (pipe) para dizer que a saída do comando ls que vinha muito rápido, não deveria ir para a tela, e sim para o comando more!
Onde o comando more recebeu toda a informação do ls e na hora de mostrar, paginou!
Agora, vamos ver como localizar um determinado arquivo dentro de um diretório! Vamos listar o diretório /etc.
# ls /etc
Quando executamos o comando acima, ele irá mostrar a listagem do diretório /etc de uma forma muito rápida. Então, podemos combinar o ls com o more para mostrar a lista de forma pausada:
# ls /etc | more
"Retroceder Nunca Render-se Jamais !"
Força e Fé !
Fortuna Audaces Sequitur !
-
Muito boa a sua explicação Ibsen!
-
Ibsen "Perito" fala fala fala e não informa nada, além disso costuma copiar texto sem citar a referência.
https://ivanix.wordpress.com/2008/07/31/conhecendo-o-pipe-o-more-e-o-grep/
Sua capacidade de armazenamento é infinita, apenas limitada pela memória da máquina. FALSO
"O shell controla a execução de cada um para que não haja acúmulo de dados entre os comandos (a cada pipe é associado um buffer de tamanho limitado)."
http://wiki.inf.ufpr.br/maziero/doku.php?id=unix:shell_avancado
É visto pelo processo como um arquivo. Gabarito VERDADEIRA, porém eu marcaria como FALSA por causa da imprecisão da questão. Acredito que o + correto seria "É visto como um arquivo pelo processo após o sinal | (pipe)."
Permite a comunicação entre exatamente dois processos. VERDADEIRA. Vide questão 30 (Q836759).
Sua leitura e escrita são realizadas completamente em nível de usuário. ?
-
Complementando o comentário do Thiago Vieira:
"Sua leitura e escrita são realizadas completamente em nível de usuário. ?" FALSO. É a nível de interpretador de comandos.
Nível de usuário é onde se encontram os programas e aplicações que interagem com o usuário via interface gráfica. O pipe roda no nível imediatamente abaixo, o nível do interpretador de comandos, também acessível ao usuário, mas sem interface gráfica.
-
( ) Permite a comunicação entre exatamente dois processos.
Essa afirmação me trouxe uma dúvida. Considere o comando a seguir, extraido de[1]:
$ ls | grep b | sort -r | tee arquivo.out | wc -l
A saida do comando, ls, é passada para o segundo, sort -r; a saida desde é passado para o terceiro, tee. Finalmente, a saida de tee é passada para o comando wc -l.
Se cada um desses comandos que pega a saida do anterior é um processo, como que afirmar que o pipe "permite a comunicação entre exatamente dois processos" esta' correta?
Fonte:
[1] https://www.vivaolinux.com.br/dica/Usando-o-pipe