¿La redirección hacia atrás es lo mismo que una tubería?


Respuestas:


16

A su pregunta de título: No. Obtener stdindel contenido del archivo ( redirección de entrada ) no es lo mismo que canalizar la salida de un programa a la entrada de otro programa.

Pero, como en catrealidad solo imprime el contenido de un archivo, el resultado es efectivamente el mismo en ese ejemplo.


Pero incluso solo lo siguiente produce resultados muy diferentes:

$ cat * | sort
$ sort < *

Si hay más de un archivo coincidente, este último producirá

-bash: *: ambiguous redirect

dado que no es tan flexible como el primero, que capturará todos los archivos coincidentes y los canalizará como entrada sort.


3
¿Qué hay de ... sort *? Sin uso inútil de cat, sin uso inútil de indirección, más corto de tipo, más fácil de pensar, y creo que GNU sort te tratará con optimizaciones de escalabilidad para archivos muy grandes (no estoy tan seguro de eso, medio recordando algo allí)
sehe

@sehe Probablemente. Acabo de usar el ejemplo para mostrar que los dos son diferentes. No se trata de un uso eficiente del género. Sort es más flexible que eso, sin embargo.
Daniel Beck

@DanielBeck, Respecto a la eficiencia, ¿es sort < txtfilemucho más eficiente que cat txtfile | sort?
Pacerier
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.