Al redireccionar un flujo lo que hacemos es modificar el comportamiento natural del sistema o programa, p.ej. enviar la salida de un programa a un fichero, tomar la entrada para un programa de un fichero, un poco mas abajo veremos unos ejemplos.
Veamos una tabla con los operadores más comunes de redirección
Operador Redirección | Efecto del Operador |
---|---|
> |
Redirige la stdout a un fichero, si no existe lo crea, y si existe lo sobre escribe (borra el contenido antes de incluir el nuevo contenido) |
>> |
Añade la stdout a un fichero, pero a diferencia del anterior la añade al fichero especificado |
2> |
Redirige la stderr a un fichero, si no existe lo crea, y si existe lo sobre escribe (borra el contenido antes de incluir el nuevo contenido) |
2>> |
Redirige la stderr a un fichero, pero a diferencia del anterior la añade al fichero especificado |
&> |
Crea un fichero tanto con stdout como con stderr , si ya existe elimina primero su contenido |
< |
Envía el contenido del fichero especificado como stdin |
<< |
Utiliza como stdin las líneas de texto pasadas |
<> |
El fichero especificado será utilizado tanto como stdin como stdout |
Estos direccionamientos se pueden utilizar de diversas formas con algunos conocimientos y algo de imaginación pueden a llegar a ser una herramienta muy potente.
El comando tee nos permite enviar la stdin tanto a stdout como a aquellos ficheros que deseemos, con ello podríamos mostrar el resultado de un programa tanto por la pantalla como almacenarlo en un fichero.
p.ej.:
programa | tee ficheroSalida.txt
Vemos que con "|" canalizamos la salida de programa a "tee" y con este ultimo hacemos que dicha salida aparezca tanto por stdout como al fichero ficheroSalida.txt
Recordad que con man o info desde la consola podemos ver todas las opciones de los distintos comandos que podamos necesitar
Añadir nuevo comentario