Introducción
De forma predeterminada, los comandos de Linux muestran todo en la pantalla. Pero ¿qué ocurre si desea guardar esos datos?
Este proceso se denomina redirección. Es como poner una «dirección de reenvío» en su correo.
Esta es una buena forma de entender la sintaxis del shell en general: en lugar de cambiar lo que hace fundamentalmente un comando, la redirección cambia el destino al que se envía su entrada o salida.
En este laboratorio, aprenderá tres formas de controlar el destino de los datos:
- Redirigir y sobrescribir (
>): guarda la salida en un archivo y reemplaza el contenido anterior. - Redirigir y añadir (
>>): añade la salida al final de un archivo. - Redirigir errores (
2>): captura únicamente los mensajes de error.
Redirigir la salida (sobrescribir)
El signo mayor que > es el operador de sobrescritura.
Muchos principiantes aprenden que > significa «guardar en un archivo», pero es más preciso entenderlo como «enviar la salida estándar a este archivo y reemplazar su contenido anterior». Esta formulación es importante cuando empiece a combinar comandos con más cuidado.
Indica a Linux lo siguiente: «Tome la entrada de este comando y escríbala en este archivo. Si el archivo existe, bórrelo primero».
Vaya al directorio del proyecto:
cd ~/project
Redirija la salida a output.txt:
echo "Hello, Linux." > output.txt
No aparecerá nada en la pantalla. El texto se guardó en el archivo. Verifíquelo:
cat output.txt
Ahora compruebe por qué lo llamamos «sobrescritura». Ejecute lo siguiente:
echo "This is new content." > output.txt
cat output.txt
El texto anterior, «Hello, Linux.», ha desaparecido. El operador > vació el archivo antes de escribir el nuevo contenido.
Por este motivo, debe tratar la redirección con la misma precaución que una modificación de archivos. Un comando breve puede reemplazar inmediatamente el contenido de un archivo existente.
Añadir salida (>>)
A menudo, no querrá destruir los datos, sino añadir información. Para ello, utilice el signo doble mayor que >>.
Este operador indica que se debe añadir contenido.
Añada una línea nueva a output.txt:
echo "This line is appended." >> output.txt
cat output.txt
Debería ver las dos líneas.
El contenido original se conserva. Hágalo de nuevo:
echo "Another line." >> output.txt
cat output.txt
El operador >> es perfecto para los registros.
Añadir contenido es importante porque muchos archivos operativos crecen con el tiempo, en lugar de volver a crearse desde cero. Los registros, informes y diarios de comandos suelen utilizar un flujo de trabajo que consiste en «añadir al final».
Redirigir errores (2>)
Como aprendió, Linux separa la «salida correcta» (stdout) de la «salida de error» (stderr).
Los operadores > y >> gestionan estrictamente la «salida correcta». Ignoran los errores.
Aquí es donde el modelo de flujos del laboratorio anterior resulta práctico. Si la salida y los errores son flujos separados, Linux puede enviarlos a destinos diferentes.
Para capturar los errores, utilizamos 2>. El identificador de la salida de error estándar es 2.
Intente mostrar el contenido de un directorio que no existe:
ls /missing_directory 2> error.log
La pantalla permanece en blanco. El error se capturó y se guardó en error.log.
Consulte el archivo:
cat error.log
Verá el mensaje de error dentro del archivo.
El 2 de 2> procede del número convencional del descriptor de archivo correspondiente a la salida de error estándar. Todavía no necesita memorizar todos los descriptores de archivo, pero es útil saber que estos números hacen referencia a los canales de flujo del shell.
Resumen
Ha aprendido a controlar el flujo de datos:
>(sobrescribir): guarda la salida en un archivo y borra el contenido anterior.>>(añadir): añade la salida al final del archivo y conserva el historial.2>(redirigir errores): captura los mensajes de error.
Estas herramientas le permiten guardar eficazmente los resultados de los comandos.



