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 sort turma
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 sort lpr
leon 2008-08-19