GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo redirigir la salida a /dev/null en Linux

En Linux, se accede muy comúnmente a los programas usando la línea de comando y la salida, como tal, se muestra en la pantalla del terminal. La salida consta de dos partes:STDOUT (Salida estándar ), que contiene registros de información y mensajes de éxito, y STDERR (Error estándar ), que contiene mensajes de error.

Muchas veces, la salida contiene mucha información que no es relevante y que utiliza innecesariamente los recursos del sistema. Especialmente en el caso de secuencias de comandos de automatización complejas, donde hay muchos programas que se ejecutan uno tras otro, el registro que se muestra es enorme.

En tales casos, podemos hacer uso del pseudodispositivo archivo '/dev/null ' para redirigir la salida. Cuando la salida se redirige a /dev/null , se descarta inmediatamente y, por lo tanto, no se utiliza ningún recurso.

Veamos cómo redirigir la salida a /dev/null en Linux.

Tomemos un ejemplo del comando mv que intenta mover dos archivos a un directorio en particular, donde un archivo se mueve con éxito (muestra STDOUT ) y el otro da error al moverse (muestra STDERR ).

$ mv -v tmp.c /etc/apt/sources.list /tmp

Nota :El '-v' argumento de mv muestra el registro de éxito cuando se mueve un archivo. Sin la bandera, no se imprime nada en STDOUT .

Ahora, para redirigir solo el STDOUT a /dev/null , es decir, para descartar la salida estándar, use lo siguiente:

$ mv -v tmp.c /etc/apt/sources.list /tmp 1>/dev/null

¿Qué significa '1>/dev/null'?

Aquí '1' indica STDOUT , que es un número entero estándar asignado por Linux para el mismo. El operador '>' , llamado operador de redirección, escribe datos en un archivo. El archivo especificado en este caso es /dev/null . Por lo tanto, los datos finalmente se descartan.

Si se proporcionó cualquier otro archivo en lugar de /dev/null , la salida estándar se habría escrito en ese archivo.

Del mismo modo, para redirigir solo el STDERR a /dev/null , utilice el número entero '2' en lugar de '1' . El entero '2' significa error estándar.

$ mv -v tmp.c /etc/apt/sources.list /tmp 2>/dev/null

Como puede ver, el error estándar no se muestra en la terminal ahora, ya que se descarta en /dev/null .

Finalmente, para descartar ambos STDOUT y STDERR al mismo tiempo, utilice lo siguiente:

$ mv -v tmp.c /etc/apt/sources.list /tmp &>/dev/null

El carácter ampersand ('&') indica que tanto la salida estándar como el error estándar deben redirigirse a /dev/null y descartado. Por lo tanto, en la última captura de pantalla, no vemos ningún resultado impreso en la pantalla.

Conclusión

En este artículo, hemos visto cómo redirigir la salida a /dev/null . Lo mismo se puede usar en cualquiera de los comandos o en secuencias de comandos Bash complejas que generan una gran cantidad de registros. En caso de que el script necesite depuración o deba probarse; en tales casos, se requiere el registro para ver y analizar los errores correctamente.

Sin embargo, en los casos en que la salida ya se conoce y anticipa, se puede descartar con /dev/null . Si tiene alguna pregunta o comentario, ¡háganoslo saber en los comentarios a continuación!


Linux
  1. Cómo generar una contraseña aleatoria en Linux usando /dev/random

  2. ¿Cómo maneja Linux múltiples separadores de rutas consecutivas (/home////username///file)?

  3. ¿Qué tan portátiles son /dev/stdin, /dev/stdout y /dev/stderr?

  4. Cómo silenciar completamente un cronjob a /dev/null/?

  5. Linux – ¿Cómo crear /dev/null?

Cómo reemplazar un disco duro fallido en el software RAID de Linux

¿Qué es '/dev/null 2&1' en Linux?

¿Qué es /dev/null en Linux?

/dev/null en Linux

Cómo usa Linux /dev/tty y /dev/tty0

hacer eco o imprimir /dev/stdin /dev/stdout /dev/stderr