Después de unas fiestas en las que esperamos que disfrutáseis de la familia, continuamos con nuestra guía sobre la terminal de Linux. Hoy vamos a hablar sobre como redireccionar la salida y la entrada a archivos.
Tabla de contenidos
La redirección
Es muy usual, que quieras guardar en un archivo, el resultado de ejecutar un comando o quieras proporcionarle a un comando los datos desde un archivo. Para ello podemos usar la redirección. Este concepto se basa en Streams o flujos, en UNIX hay 3 flujos stdin, stdout, stderr, que significan standar input, standar outpunt, stardar error. Esto nos afecta de la siguiente manera:
- Cualquier información que se mande a stdout saldrá por pantalla en la terminal. (Comportamiento por defecto)
- Cualquier información que se mande a stderr saldrá por la pantalla de la terminal. (Comportamiento por defecto)
- Cualquier información que se teclee en la terminal se mandará a stdin.
Linux tiene la capacidad de modificar, el destino o el origen de los flujos y en esto nos vamos a basar, este concepto comúnmente se denomina redirección.
Redirección de la salida
Para redireccionar la salida y que todo el contenido que se muestre en pantalla se guarde en un archivo, se usa el símbolo > seguido de la ruta del fichero donde se desea guardar. Si el fichero no existe se crea y si el fichero existe se sobrescribe. Ejemplo:
Si no queremos que nos “machaque” el archivo, podemos usar el operador >> que lo añadirá al final del archivo que le estamos indicando.
Redirección de la entrada
Para pasarle datos desde un fichero a un comando de la terminal podemos usar el símbolo < seguido de la ruta del fichero.
El comando grep lo explicaremos en otra entrada, pero básicamente podemos decir que le pasamos un conjunto de información y nos filtra los resultados.
Redirección de la salida estándar de errores
Esta opción suele ser menos común, pero hay veces que nos interesa guardar en un fichero toda la información sobre los errores que nos está dando cierto programa, para luego analizarlos a fondo. Para ello debemos usar: 2> + la ruta_archivo. Por ejemplo si queremos guardar en un fichero los errores de utilizar el grep anterior pondríamos: $ grep -E “e” < misArchivos 2> errores
Normalmente se suele usar, para redireccionar los errores a /dev/null que es un fichero especial de Unix que, a grandes rasgos, recibe cualquier tipo de información y la destruye.