InicioLinux¿Qué es /dev/null y cómo puede ayudarte?

¿Qué es /dev/null y cómo puede ayudarte?

LinuxFecha desconocida




Si ya poseemos algunas nociones del árbol de directorios de GNU/Linux, debe sonarnos al menos la referencia /dev/, que es, efectivamente donde se encuentran todos los archivos relacionados con dispositivos de hardware.

Si miramos en el directorio /dev/ veremos un “archivo” llamado null, pero si queremos abrirlo para ver su contenido, el sistema nos dirá que no es posible ya que no es de contenido ordinario. He entrecomillado la palabra archivo porque, como todos sabéis para Linux todo (hardware y software) se representa como un archivo.

Este es un aporte de Daniel Durante, convirtiéndose así en uno de los ganadores de nuestra competencia semanal: "Compartí lo que sabés sobre Linux". ¡Felicitaciones Daniel!

¿A qué dispositivo se corresponde /dev/null?

A efectos prácticos imagínate un cubo de basura, un pozo sin fondo o el espacio sideral al que lanzar cualquier cosa sin posibilidad de recuperarla (por mucho que se empeñen los tipos de la Nasa).

Pero si ya tengo comandos como rm, ¿para qué quiero otra cosa nueva que borre?

Porque la forma de trabajar de ambos “agujeros negros” es completamente diferente: ¿cómo harías para anular en tiempo de ejecución la salida estándar de un error en un comando dentro de un script para la shell? Aquí es donde entra /dev/null.

Vamos a verlo con un ejemplo.

Hemos creado un fichero llamado pruebas conteniendo la cadena “Hola Mundo”. Si queremos representar el contenido de ese fichero en la linea de comandos, podríamos hacerlo de la siguiente forma:

usuario@laptop:~$ cat prueba
Hola Mundo


Si el fichero no existiese o estuviera nombrado como pruebas (con una 's' al final), obtendríamos el siguiente error en la consola:

usuario@laptop:~$ cat pruebas
cat: pruebas: No existe el fichero o el directorio


¿Que podríamos hacer para evitar el mensaje de error? Pues sencillamente redirigir la salida del comando, en caso de error, a un “cubo de basura”, es decir a /dev/null

¿Cómo especificamos que sea en caso de error? Aquí entran los valores estándar de entrada, salida y error para un programa: STDIN, STDOUT y STDERR (que pueden ser sustituidos por 0, 1 y 2 respectivamente). De esta forma, si ponemos...

usuario@laptop:~$ cat pruebas 2>/dev/null
usuario@laptop:~$


...veremos que no se producirá en la consola el mensaje de error.

Hay que tener cuidado porque la sintaxis es fundamental: entre los caracteres 2 y > no debe existir espacio. Sino, daría lo siguiente:

usuario@laptop:~$ cat pruebas 2 >/dev/null
cat: pruebas: No existe el fichero o el directorio
cat: 2: No existe el fichero o el directorio


En cambio, un espacio entre > y /dev/null no afectará negativamente el resultado.

También podríamos usar la redirección de errores, por ejemplo, para la captura de errores en un archivo de log de la siguiente forma:

usuario@laptop:~$ cat pruebas 2 >err.log

Otro caso interesante sería la recogida de resultados en otro fichero siempre y cuando no se produjese un error, para lo cual pondríamos:

usuario@laptop:~$ cat prueba 1>resultado_de_salida  2>err.log

Por último cabe poner la expresión "> /dev/null 2>&1" en la que se aúnan la salida estándar y la salida de error redireccionándolas para que en ningún caso se obtenga información de salida.
Datos archivados del Taringa! original
83puntos
0visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
1visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

D
Usuario
Puntos0
Posts447
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.