Flujos, Redirecciones y Pipes - Redirecciones

Versión para impresiónSend by emailVersión PDF

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

Operadores 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.

  • Podemos redireccionar stderr para que no se muestren los mensajes de error al ejecutar un programa determinado
    • programa 2>/dev/null
    • /dev/null es un dispositivo que apunta a null haciendo que se pierdan en este caso las salidas de error.
       
  • Podemos utilizar << dentro de un script para hacer que acepte datos desde la línea de comandos hasta que encuentre una línea con la cadena EOF
    • programa<<EOF

tee

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

(If you're a human, don't change the following field)
Your first name.
(If you're a human, don't change the following field)
Your first name.
(If you're a human, don't change the following field)
Your first name.

Plain text

  • No se permiten etiquetas HTML.
  • Saltos automáticos de líneas y de párrafos.
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
CAPTCHA de imagen
Introduzca los caracteres mostrados en la imagen.