Quando usar pipes e quando redirecionar?

Quando usar pipes e quando redirecionar?

Embora isso seja algo básico, ainda me pergunto. Considere estes dois exemplos.

Caso 1:

[root@dhcppc0 practice]# cat file1 > wc -l
cat: invalid option -- l
Try `cat --help' for more information.

Caso 2:

[root@dhcppc0 practice]# cat file1 | wc -l
7

Eu me pergunto, por que o redirecionamento não funciona no primeiro caso? quando usar o redirecionamento e quando usar pipes? Eu uso Linux há muito tempo, mas ainda assim essas coisas básicas me deixam perplexo.

Por favor ajude.

Responder1

Ooperador de redirecionamentoé usado para transmitir um comando stdoutpara um arquivo ( >) ou para transmitir o conteúdo de um arquivo para stdinum comando ( <).

Ooperador de tubulação( |) transmite a saída dos processos ( stdout) para os próximos processos' stdin.

A única maneira de fazer seu primeiro caso funcionar seria usar um arquivo temporário, então você precisaria seguir duas etapas:

cat file1 > tmpfile
wc -l < tmpfile

Responder2

Você usa pipes quando deseja conectar um FD de um executável a um FD de outro. Você usa o redirecionamento quando deseja conectar um FD de um executável a um arquivo.

informação relacionada