“/dev/zero” y “/dev/null” son dos archivos de dispositivo ficticios que son útiles para crear archivos vacíos. Pero hay una clara diferencia en lo que realmente hacen. En esta publicación, veremos la diferencia entre los dos y dónde se pueden usar.
/dev/archivo cero
Se utiliza para crear un archivo sin datos pero con el tamaño requerido (un archivo con ceros escritos en él).
Vamos a crear un archivo con /dev/zero:
# dd if=/dev/zero of=/opt/zero.txt bs=2048 count=2048 2048+0 records in 2048+0 records out 4194304 bytes (4.2 MB) copied, 0.150465 s, 27.9 MB/s
Crea un archivo que tiene ceros continuos. Entonces podemos decir que /dev/zero es un archivo que se usa para crear un nuevo archivo con cierto tamaño requerido sin ningún significado para los datos.
También puede usar el archivo /dev/zero junto con el comando dd para borrar un disco. Por ejemplo:
# dd if=/dev/zero of=/dev/sda bs=2K conv=noerror,sync
Otro archivo que también se puede usar en este proceso es/dev/null:
/dev/null
Si bien enviar todos los resultados suele ser algo bueno, otra cosa que se encontrará haciendo de manera regular es redirigir los errores (lo que espera en algunos comandos) a un dispositivo especial:/dev/null.
El tipo nulo revela la funcionalidad:está en algún lugar entre un bote de basura y un agujero negro. Este archivo es incluso útil para crear archivos con tamaño cero.
Por ejemplo, si ve que tengo pocos archivos y carpetas en el directorio actual:
# ls anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates Desktop Downloads Music Public Videos
Si redirijo la salida del comando "ls" al archivo "/dev/null", los datos de salida no se pueden recuperar incluso después de leer el archivo nulo:
# ls > /dev/null # cat /dev/null #
Cómo recrear /dev/null
Los siguientes comandos se colocaron en una línea y separados por un punto y coma ';' para ejecutarse lo más rápido y tener el menor efecto posible en el sistema en ejecución.
# rm /dev/null ; mknod -m 0666 /dev/null c 1 3 ; Execute: yes
Verifica que todo esté bien y en su lugar:
# ls -al /dev/null
Resumen
Cuando redirigimos la salida a /dev/zero, hace exactamente lo mismo que /dev/null:los datos desaparecen. Sin embargo, en la práctica, /dev/null se usa con mayor frecuencia para este propósito.
Entonces, ¿por qué tener este dispositivo especial entonces? Porque /dev/zero también se puede usar para leer bytes nulos. De todos los 256 bytes posibles, el byte nulo es el primero:el 00 hexadecimal. Un byte nulo se usa a menudo para indicar la finalización del comando.