Saltar al contenido

Redireccionamiento de salidas de entrada en ejemplos de Linux / Unix

¿Qué es una remisión?

La redirección es una función en Linux para que pueda cambiar los dispositivos de entrada / salida estándar mientras ejecuta un comando. El flujo de trabajo básico de cualquier comando de Linux es que toma entrada y entrega salida.

  • El teclado es el dispositivo de entrada estándar (stdin).
  • La pantalla es el dispositivo de salida estándar (stdout).

Con la redirección, se puede cambiar la entrada / salida estándar anterior.

En este tutorial, aprenderemos:


Hacer clic aquí si el video no es accesible

Redirección de salida

El es ‘>se utiliza un símbolo para la redirección de salida (STDOUT).

Ejemplo:

ls -al > listings

Aquí, la salida del comando ls -al se redirige a «listas» de archivos en lugar de a su pantalla.

Nota: Utilice el nombre de archivo correcto al redirigir la salida de un comando a un archivo. Si ya existe un archivo con el mismo nombre, el comando de redirección eliminará el contenido de ese archivo y es posible que se sobrescriba. »

Si no desea que se sobrescriba un archivo pero desea agregar más contenido a un archivo existente, debe usarlo ‘>>‘operador.

¡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. Si las configuraciones de audio en su computadora son correctas, este comando reproducirá el archivo music.mp3

Redirección de entrada

El es símbolo utilizado para la redirección de entrada (STDIN)

Ejemplo: el programa de correo electrónico en Linux puede ayudarlo a enviar correos electrónicos desde Terminal.

Puede escribir el asunto del correo electrónico utilizando el teclado estándar del dispositivo. Pero si desea adjuntar un archivo al correo electrónico, puede usar el operador de redireccionamiento de entrada en el siguiente formato.

Mail -s "Subject" to-address < Filename

Esto adjuntaría el archivo al correo electrónico y se lo enviaría al destinatario.

Los ejemplos anteriores fueron sencillos. Analizamos algunas técnicas de referencia avanzadas que utilizan los descriptores de archivos.

Reporteros de archivos (DTP)

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 (DD).

File Reporter también está en su pantalla. Cuando se inicia un programa, la salida se envía al Descriptor de archivo de la pantalla y usted ve una salida del programa en su monitor. Si la salida se envía al descriptor de archivo de la impresora, se imprimirá la salida del programa.

Redirección de errores

Siempre que ejecuta un programa / comando en la terminal, siempre hay 3 archivos abiertos, a saber, entrada estándar, salida estándar, error estándar.

Estos archivos están presentes cada vez que se ejecuta un programa. Como se explicó antes del descriptor de archivo, está relacionado con todos estos archivos.

Archivo Reportero de archivos
Entrada estándar STDIN 0
Salida estándar STDOUT 1
Error estándar STDERR 2

De forma predeterminada, se muestra una secuencia de errores en la pantalla. La redirección de errores es el enrutamiento de errores a un archivo que no es la pantalla.

¿Por qué la redirección de errores?

La redirección de errores es una de las características más populares de Unix / Linux.

Los usuarios frecuentes de UNIX encontrarán que muchos comandos le dan una gran cantidad de errores.

  • Por ejemplo, al buscar archivos, normalmente se encuentran errores de rechazo. Estos errores generalmente no ayudan a la persona que busca un archivo en particular.
  • Al crear scripts de shell, a menudo no es necesario que los mensajes de error recorten la salida normal del programa.

La solución es redirigir los mensajes de error a un archivo.

Ejemplo 1

$ myprogram 2>errorsfile

Arriba estamos haciendo un programa llamado myprogram.

2 es el descriptor de archivo de error estándar.

Usando «2>», redirigimos la salida del error a un archivo llamado «errorfile»

Por lo tanto, la salida del programa no causa errores.

Ejemplo 2

Aquí hay otro ejemplo que usa una declaración de búsqueda:

find . -name 'my*' 2>error.log

Usando el comando «buscar», buscamos el «.» directorio actual de su archivo con «nombre» que comienza con «mi»

Ejemplo 3 Veremos un ejemplo más complejo,

Los administradores de servidor suelen enumerar directorios y almacenar errores y resultados estándar en un archivo, que se puede procesar más tarde. Aquí está el comando.

ls Documents ABC> dirlist 2>&1

Seo

  • que escribe la salida de un archivo a otra entrada de archivo. 2> & 1 significa que STDERR redirige al objetivo STDOUT (es decir, archivo dirlist)
  • Estamos redirigiendo la salida de error a la salida estándar que se redirige a un extractor de archivos. Por lo tanto, tanto la salida se escribe en un archivo dirlist

Resumen

  • Cada archivo en Linux tiene un Reporter de archivos correspondiente
  • El teclado es el dispositivo de entrada estándar, mientras que su pantalla es el dispositivo de salida estándar
  • El operador de redireccionamiento de salida es «>». «>>» conecta la salida al archivo existente
  • El operador de redireccionamiento de entrada es «<"
  • La salida «> &» redirige un archivo a otro archivo.
  • Puede redirigir un error utilizando el correspondiente File Reporter 2.

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *