¿Cuándo utilizar tuberías y cuándo redirigir?

¿Cuándo utilizar tuberías y cuándo redirigir?

Aunque esto es algo básico, todavía me lo pregunto. Considere estos dos ejemplos.

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

Me pregunto, ¿por qué la redirección no funciona en el primer caso? ¿Cuándo usar la redirección y cuándo usar tuberías? He usado Linux durante mucho tiempo, pero todavía estas cosas básicas me desconciertan.

Por favor ayuda.

Respuesta1

Eloperador de redirecciónse utiliza para transmitir un comando stdouta un archivo ( >) o para transmitir el contenido de un archivo a stdinun comando ( <).

Eloperador de tubería( |) transmite la salida de los procesos ( stdout) a los siguientes procesos stdin.

La única forma de hacer que su primer caso funcione sería utilizar un archivo temporal, por lo que deberá seguir dos pasos:

cat file1 > tmpfile
wc -l < tmpfile

Respuesta2

Utiliza tuberías cuando desea conectar un FD de un ejecutable a un FD de otro. Utiliza la redirección cuando desea conectar un FD de un ejecutable a un archivo.

información relacionada