dn1

Si llevas usando nuestro sistema operativo GNU/Linux, lo más probable es que te suene de algo el término bit bucket o cubo de bits, pero dicho de otra manera, te será mucho más familiar: /dev/null. Entender este archivo especial, su funcionamiento y su importancia se convertirá en una herramienta inestimable. En este artículo, examinaremos por qué /dev/null obtuvo el nombre de bit bucket, cómo funciona y sus propiedades. También exploraremos algunos ejemplos de cómo se puede utilizar en la práctica común.

¿De donde viene eso de bit bucket?

Las primeras computadoras usaban tarjetas perforadas para almacenar datos y código de programación. Cuando la máquina perforaba los agujeros, el material no utilizado caía en un cubo. Con el tiempo, el cubo de bits o bit bucket se convirtió en un término general para un lugar donde se descartaban los bits que no servían.

Otros nombres para /dev/null son black hole, null route, punch cubket, null device, o simplemente null.

El archivo /dev/null

El archivo /dev/null es un archivo pseudo-dispositivo generado en el arranque. No tiene tamaño (0 bytes), ocupa 0 bloques en el disco, tiene permisos de lectura/escritura para todos los usuarios. La siguiente captura de pantalla muestra que el archivo y el último reinicio del sistema tienen la misma fecha y hora.

Se trata de un archivo especial conocido como archivo de dispositivo de caracteres. Esto permite que el archivo actúe como un dispositivo (dispositivo nulo) que no tiene búfer y puede aceptar flujos de datos. Cuando accedes a un archivo de dispositivo, te estás comunicando con un controlador. En el caso de /dev/null, actúa como un pseudodispositivo con un driver que tiene un propósito muy específico. Descarta cualquier cosa que le escribas, y sólo devuelve un carácter EOF cuando lo lees. Enviar un EOF más o menos significa hacer que el proceso sea consciente de que no se enviará ninguna entrada adicional (Fin de archivo, por lo que se “tira”).

Usando el archivo /dev/null
Suprimir la salida con /dev/null
El archivo /dev/null se usa más a menudo para suprimir la salida. En el siguiente ejemplo, utilizamos el operador de redireccionamiento “>” para enviar la salida del comando stat al cubo de bits.

stat /etc/passwd > /dev/null

Esto suprime efectivamente la salida de comandos (salida estándar).

Podemos usar /dev/null para suprimir errores redirigiendo el error estándar (STDERR), así:

stat /etc/passwdss 2> /dev/null

Cambiamos el nombre del archivo a passwdss, que no existe. Esto normalmente mostraría un error “No such file or directory”. Aunque, el error fue descartado ya que redirigimos la salida STDERR (error estándar) a /dev/null.

dn2

Usando /dev/null para introducir EOF (Fin de archivo)

Otro uso común para /dev/null es suministrar una entrada en blanco o nula que no tenga nada más que el carácter EOF. Puede que no esté inmediatamente claro por qué necesitarías tal función. Sin embargo, hay muchas utilidades que necesitan un carácter EOF para proceder. Por ejemplo, la utilidad mailx te permitirá escribir un correo electrónico desde la línea de comandos. Continuará esperando la entrada hasta que reciba un carácter EOF, que se envía pulsando CTRL + D. Esto le indica a la utilidad que no tienes la intención de enviar más entradas.

Si quisiéramos enviar un correo electrónico en blanco, tendríamos que entrar en el modo interactivo y pulsar CTRL + D sin introducir ningún dato. Esto no sería práctico si se utiliza en un script u otra forma desatendida. Como solución, podemos redirigir /dev/null al comando mailx para hacer esto por nosotros, dando por sentado que tienes Sendmail instalado y configurado.

mailx -s "email de prueba" Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. < /dev/null
Null message body; hope that's ok

/dev/null es una herramienta importante y útil para administradores de sistemas, ingenieros de desarrollo y cualquier persona que utilice la línea de comandos.

 

Fuente: maslinux

¿Quién está en línea?

Hay 743 invitados y ningún miembro en línea