Linux.Shell.Redirecciones de Entrada y Salida de Datos.

Ismael Royano Gómez
Enredando con Linux.
2 min readAug 23, 2018

Cuando ejecutamos un comando cualquiera en una consola, normalmente te muestra los resultados por la salida por defecto, es decir, la pantalla. Se puede desviar fácilmente a un archivo si lo deseamos, a esto se le llama redireccionamiento de salida. Unos ejemplos:

who > usuarios
echo ismael >> usuarios

El truco de todo esto está en estos caractereres especiales:

  • >. Redirecciona la salida por defecto del comando who a un archivo llamado usuarios. Si existiera el archivo borraría su contenido y sólo añadiría el último resultado.
  • >>. Redirecciona la salida por defecto hacia el archivo usuarios. En este caso al usar doble redireccionamiento no borra el archivo si existiera, simplemente añade un resultado más al contenido que hubiera ya dentro. Si no existe el archivo también lo crea.

Del mismo modo que la salida de un comando se puede redirigir a un archivo, también se puede hacer lo contrario, es decir la entrada de un comando desde un archivo. Así como el caracter mayor que (>) se usa para redireccionar la salida, la entra se hace con el menor que (<).

Vamos hacer un ejemplo. Lo que queremos es contar el número de líneas de un archivo mediante esta forma:

$ wc -l < users

Simplemente le estamos dirigiendo el archivo usuarios al comando wc para que nos cuente las líneas que contenga.

También podemos redirigir los errores producidos hacia un archivo con el parámetro 2:

$ cat < usuarios >usuariob 2> errores

Con el parámetro 2 controlamos que donde se muestras los errores y en este caso cambiamos la salida por defecto a un pequeño archivo llamado errores.

Ocurre veces que nos puede interesar que no se muestren mensajes de ningún tipo en la consola. Para realizar esta acción se redirecciona todo a /dev/null:

$ gcc *.cpp > /dev/null 2 > /dev/null

Delimitadores. Esto se suele usar para volcar código de un script o otro de forma que le ponemos un delimitador indicándole hasta donde queremos que finalice tal volcado. Un ejemplo:

#!/bin/bash

cat << EOF
Una frase de ejemplo
Otra frase de ejemplo
vale, ya es esta la última frase de ejemplo.
EOF

En este ejemplo el delimitador lo he llamado EOF, se puede llamar como queramos. Le indicamos que muestre el texto por la salida por defecto hasta que encuentre el delimitador, si hubiese más texto depués lo ignoraría.

Continúa por Funciones.

--

--

Ismael Royano Gómez
Enredando con Linux.

Técnico Informático curioso, lector activo de las nuevas tecnologías, amante de las series de televisión y usuario del respetable mundo del enredo.