
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 stdout
a un archivo ( >
) o para transmitir el contenido de un archivo a stdin
un 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.