tuberías vs. redirecciones

23

He estado usando tuberías y redireccionamientos durante mucho tiempo y me di cuenta de que no sé exactamente cómo son diferentes. Solo sé que si quieres almacenar la salida en un archivo, entonces usas>. De lo contrario, la mayoría de las veces solo usas |. ¿Alguien puede explicar la diferencia entre tuberías y redireccionamientos?

tony_sid
fuente

Respuestas:

25

Los dos hacen lo mismo básico; redirigen un descriptor de archivo del proceso ejecutado. La diferencia radica en cómo. Una tubería conecta la salida estándar de un proceso con la entrada estándar de otro, mientras que la redirección redirige desde / hacia un archivo ( >de salida <estándar a un archivo, de un archivo a entrada estándar).

Ignacio Vazquez-Abrams
fuente
1
El tipo de distinción difumina en Linux y otros sistemas que tienen /dev/fd. Por ejemplo, si ejecuta echo foo > >(somecommand), se expandirá a echo foo > /dev/fd/3. Todavía es una redirección, pero a un proceso.
user1686