¿Qué es la redirección?
La redirección es una característica de Linux que, al ejecutar un comando, puede cambiar los dispositivos de entrada/salida estándar. El flujo de trabajo básico de cualquier comando de Linux es que toma una entrada y da una salida.
Tipos de redirección
- “>” El dispositivo de entrada estándar (stdin) es el teclado.
- “<” El dispositivo de salida estándar (stdout) es la pantalla.
- “>>” salida estándar
- “<<” entrada estándar
- “p> &q” Fusiona la salida del flujo p con el flujo q
- “p <&q” Fusiona la entrada del flujo p con el flujo q
Redireccionamiento de salida
El ‘> El símbolo ‘ se utiliza para la redirección de salida (STDOUT).
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042815574633.png)
Ejemplo:
ls -al > listings
Aquí, la salida del comando ls -al se redirige al archivo "listados" en lugar de a su pantalla.
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042815574638.png)
Nota :“Utilice el nombre de archivo correcto al redirigir la salida del comando a un archivo. Si existe un archivo con el mismo nombre, el comando redirigido eliminará el contenido de ese archivo y luego se sobrescribirá”.
— Si no desea que se sobrescriba un archivo pero desea agregar más contenido a un archivo existente, debe usar ‘>> ‘ operador.
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042815574679.png)
— ¡Puede redirigir la salida estándar, no solo a archivos, sino también a dispositivos!
cat music.mp3 > /dev/audio
El comando cat lee el archivo music.mp3 y envía la salida a /dev/audio, que es el dispositivo de audio. Pero si las configuraciones de sonido en tu PC son correctas, este comando reproducirá el archivo music.mp3
Redirección de entrada
El ‘< El símbolo ‘ se utiliza para la redirección de entrada (STDIN)
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042815574653.png)
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042815574667.png)
Esto adjuntaría el archivo con el correo electrónico y se enviaría al destinatario.
"Noticias de hoy" es el asunto del correo electrónico, "[email protected]" es la dirección de correo electrónico y "NewsFlash" es el archivo adjunto.
Los ejemplos anteriores eran simples. Veamos algunas técnicas avanzadas de redirección que utilizan descriptores de archivos.
Descriptores de archivos (FD)
En Linux/Unix, todo es un archivo. Los archivos normales, los directorios e incluso los dispositivos son archivos. Cada Archivo tiene un número asociado llamado Descriptor de Archivo (FD).
Su pantalla también tiene un Descriptor de archivo. Cuando se ejecuta un programa, la salida se envía al Descriptor de archivo de la pantalla y verá la salida del programa en su monitor. Si la salida se envía al Descriptor de archivo de la impresora, la salida del programa se habría impreso.
Redireccionamiento de errores
Cada vez que ejecuta un programa/comando en la terminal, siempre hay 3 archivos abiertos, a saber, entrada estándar, salida estándar, error estándar.
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042815574640.png)
Estos archivos siempre están presentes cada vez que se ejecuta un programa. Como se explicó antes, un descriptor de archivo está asociado con cada uno de estos archivos.
Archivo | Descriptor de archivo |
---|---|
Entrada estándar STDIN | 0 |
Salida estándar STDOUT | 1 |
Error estándar STDERR | 2 |