Tutorial

Como redireccionar y usar tuberías en linux

Hoy vamos a comentar sobre la redirección de las entradas y salidas de los comandos, algo que puede ser muy útil desde el terminal de Linux.

Comandos en Linux: Redirección de entradas

Muchos comandos como ls imprimen su salida en la pantalla, pero podemos hacer que este comando se comporte de una manera distinta, como redirigir la salida de muchos de los comandos a archivos, dispositivos e incluso la inclusión de algún otro comando.

Salida estándar

La mayoría de las aplicaciones del terminal de comandos muestran sus resultados enviándolos al centro de llamadas de salidas estándar. Habitualmente la salida estándar envía sus contenidos a la pantalla. Para hacer una redireccion de la salida estándar a un archivo, debemos usar el carácter “>”, ejemplo:

Uso del comando ls con redirección normal

[php]ls > lista.txt[/php]

Con esto hacemos que el comando ls se ejecute y los resultados se escriban en un archivo llamado lista.txt.

Cada vez que el comando se repite el archivo se sobrescribe desde el principio con la salida. En el caso de que queramos que los nuevos resultados se añadan al final pero sin que se sobrescriba todo el documento, vamos a usar los caracteres “>>”:

Redirección sin sobrescribir

[php]ls >> lista.txt[/php]

Entrada estándar

Existen comandos que pueden aceptar la entrada de un centro de llamadas de entradas estándar. La entrada estándar toma sus contenidos desde el teclado, pero al igual que la salida estándar, todo esto puede ser modificado y redirigido.
Para redirigir la entrada estándar desde un archivo en vez del teclado, podemos utilizar el carácter “<” de la siguiente manera:

Uso del comando sort para ordenar una lista

[php]sort < lista.txt[/php]

En el ejemplo anterior, se utiliza el comando sort para que procese el contenido de lista.txt. Los resultados se reproducen en pantalla ya que no se redirigió la salida estándar. Ahora podríamos redirigir la salida estándar a otro archivo de la siguiente manera:

Uso del comando sort y redirección a un nuevo archivo

[php]Sort < lista.txt > lista_ordenada.txt[/php]

Como se puede ver, podemos redirigir tanto las entradas como las salidas de un comando en Linux desde el terminal. Tienes que tener en cuenta que orden de la redirección no cuenta.

Tuberías

Las tuberías nos permiten conectar la ejecución de varios comandos al mismo tiempo. Con las tuberías, la salida estándar de un comando se puede introducir en la entrada estándar de otro, por ejemplo:

Uso básico de tuberías

[php]Ls –l | less[/php]

En este caso, la salida del comando ls se ve alterada por el comando less, muy útil para ir viendo los datos la salida de dicho comando detenidamente y no ver un mar de códigos de golpe.

Ver comentarios

  • Hola si realizo 3 comandos mediante pipes, en la implementación se utiliza uno o dos pipes.
    Por ejemplo :
    cat /etc/passwd | grep bash | wc -lines
    Esto en la implementación mediante procesos tendría que crear uno o dos pipes? Muchas gracias, muy buen artículo.

Esta web utiliza cookies propias con finalidad funcional y de terceros para realizar el análisis de la navegación de los usuarios, mejorar mis servicios y mostrarte publicidad relacionada con tus preferencias mediante el análisis de tus hábitos de navegación. Si continúa navegando, se considera que acepta su uso.

Leer más