Input, Output, Redirection Linux - LPI 101

Los procesos UNIX normalmente abren tres descriptores de archivo estándar que le permiten procesar la entrada y la salida. Estos descriptores estándar pueden redefinirse para cualquier proceso dado. En la mayoría de los casos, el descriptor stdin es el teclado, y los dos descriptores de salida, stdout y stderr, son la pantalla.



Redirección stdout

  • Program > File

Los datos fluyen de izquierda a derecha.


Esto ejecutará la utilidad fdisk y emitirá el resultado al archivo partitions.txt. No hay salida visible. Observe también que el shell leerá esta línea desde la derecha. Como resultado, el archivo partitions.txt se creará primero si no existe y se sobrescribe si se utiliza el operador '>'.

El operador '>>' añadirá la salida estándar a un archivo.


Redirección stdin

  • Program < File

En este caso los datos fluyen de derecha a izquierda. El operador '<' sólo se utiliza para stdin y no se puede utilizar para stdout.

Si las instucciones de archivo contienen en cada línea las letras p, m y q, entonces el siguiente ejemplo haría que fdisk imprima la tabla de particiones de /dev/hda, imprima la pantalla de ayuda de la utilidad y finalmente salga:



Redirección stderr

  • Program 2> errorfile

Stdin, stdout y stderr están representados por 0, 1 y 2, respectivamente. Esto permite seleccionar el flujo stderr:



Comandos con piped

  • Program1 | Program2

Las tuberías están representadas por el símbolo "|". El flujo de datos va de izquierda a derecha. La siguiente figura ilustra cómo el stdout de un proceso es redirigido al stdin para otro proceso.



NB Los redireccionamientos de salida múltiples se analizan de derecha a izquierda, por lo que los comandos siguientes no son equivalentes.

Do-command 2>&1 >logfile
Do-command >logfile 2>&1

El comando tee

  • command | tee FILENAME

Este comando se utiliza después de un pipe y toma un nombre de archivo como argumento. La salida estándar del comando anterior se envía al archivo dado como un argumento, pero el tee también permite que el flujo a través de stdout. El stdout se ha duplicado de esta manera.

Publicar un comentario

0 Comentarios