Dutos©2002 FABRICIO FERRARI

Os dutos (pipes) são elos de ligação entre a saída padrão de um programa e a entrada padrão de outro, conforme mostrado na figura [*]. Este conceito simples está por trás desta ferramenta útil e eficiente. Suponha que você quisesse juntar (cat) o conteúdo de dois arquivos (alunos e alunas), ordená-los (sort) e gravar a saída num novo arquivo (turma). Para isto bastaria

$ cat alunos alunas $ \vert$ sort $ >$ turma

Figura 3.2: Um duto entre dois filtros.

Desta forma o cat concatena alunos e alunas numa mesma saída padrão, que servirá como entrada padrão para o sort, que terá sua saída redirecionada para o arquivo turma. O comando anterior sem o uso de dutos seria escrito

$ cat alunos alunas $ >$ alunosealunas

$ sort alunosealunas $ >$ turma

$ rm alunosealunas

Na forma tradicional a quantidade de comandos é maior e há a necessidade de usar o arquivo temporário alunosealunas. Também é possível usar mais de um duto na mesma linha de comando. Para imprimir diretamente a saída do processo acima simplesmente acrescente o comando de impressão lpr

$ cat alunos alunas $ \vert$ sort $ \vert$ lpr

leon 2008-08-19