Estou usando pipes e redirecionamentos há muito tempo e percebi que não sei exatamente como eles são diferentes. Eu só sei que se você quiser armazenar a saída em um arquivo, use>. Caso contrário, na maioria das vezes você apenas usa |. Alguém pode explicar a diferença entre pipes e redirecionamentos?
20
Respostas:
Os dois fazem a mesma coisa básica; eles redirecionam um descritor de arquivo do processo executado. A diferença está em como. Um canal conecta o stdout de um processo ao stdin de outro, enquanto o redirecionamento redireciona de / para um arquivo (
>
de stdout para um arquivo,<
de um arquivo para stdin).fonte
/dev/fd
. Por exemplo, se você executarecho foo > >(somecommand)
, ele será expandido paraecho foo > /dev/fd/3
. Ainda é o redirecionamento, mas para um processo.