Según la NASA, «un agujero negro es un lugar en el espacio donde la gravedad es tan fuerte que ni siquiera la luz puede salir». Hay algo similar en el universo de Linux: descarta todo lo que está escrito en él y solo devuelve un EOF (final de archivo) cuando se lee. Es un archivo especial también conocido como dispositivo nulo. /dev/null
¿Entonces es solo un archivo?
Sí, y la mayoría de las cosas en Linux son un archivo, pero /dev/null
no es un archivo normal, profundicemos.
c
en crw-rw-rw-
nos dice que es un archivo de caracteres especiales, lo que significa que procesa los datos carácter a carácter. Esto se puede comprobar con test -c
como:
¿Cuál es el contenido del archivo?
Veamos eso haciendo el cat
Mando:
Como ya se mencionó, solo devuelve un EOF (final de archivo) al leer. ¡Entonces está vacío!
¿Qué más podemos saber sobre el archivo?
Averigüemos con el stat
Mando:
Esto nos dice que su tamaño es 0. También es bueno tener en cuenta que el permiso de lectura y escritura en el archivo está habilitado para todos, pero no se requiere permiso de ejecución.
¿Qué sucede con el tamaño del archivo cuando escribimos datos en él?
Intentemos esto:
los cat
El comando no devolvió nada y según el stat
Command, su tamaño no ha cambiado.
Como se mencionó anteriormente, descarta todo lo que estaba escrito en él. Puede escribir tantos datos como desee, que se descartan inmediatamente para que el tamaño siempre permanezca 0: ¿singularidad?
En otras palabras, no puedes cambiar /dev/null
¿Es útil? Cómo usarlo
Sí, es muy útil y muy útil en muchos escenarios.
Teniendo en cuenta sus 2 propiedades más importantes (descarta todo lo escrito en él y devuelve EOF cuando se lee), examinemos sus casos de uso más comunes:
- Podemos descartar la salida (stdout) o error (stderr) de cualquier comando / script redireccionando a
/dev/null
Descartar salida estándar:
descartar stderr:
Como referencia, aquí hay un repaso rápido sobre los operadores de redireccionamiento:
Redirigir stdout al archivo
> file 1> file
Redirigir stderr al archivo
2> file
Redirigir stdout y stderr al archivo
&> file > file 2>&1
Por lo tanto, es útil cuando ejecuta un comando / script y genera un resultado o un error que desea ignorar.
-
Podemos vaciar un archivo (borrar el contenido de un archivo) editando la salida de. redireccionar
/dev/null
para -
Podemos proporcionar una entrada nula o en blanco para un comando / script si es necesario
< /dev/null
Esto proporcionará una entrada nula o en blanco. En otras palabras, enviará inmediatamente un EOF al comando / script para que no espere una entrada.
Observe que el operador de redireccionamiento
<
es para entrada (stdin).Por ejemplo: si queremos evitar el texto del correo electrónico en el comando de correo, podemos hacerlo usando:
< /dev/null
Ejemplo:
$ mail -s hello [email protected] < /dev/null
¿Qué pasa si eliminamos / dev / null?
Entonces, ¿quieres ver las consecuencias de la extinción del agujero negro? : D
Bueno, intentemos ver si podemos eliminarlo primero.
Para eliminar un archivo, necesitamos acceso de escritura al directorio en el que se encuentra el archivo.
Comprobemos el permiso del directorio / dev:
El primer carácter de la primera columna d
denota que /dev
es un registro.
Los siguientes caracteres son para el propietario, el grupo y otros: 3 caracteres cada uno.
El propietario tiene todos los permisos. rwx
lo que significa que el propietario del directorio puede leer, escribir y buscar en el directorio. Tenga en cuenta que el permiso de escritura permite al propietario crear o eliminar archivos en el directorio.
Los permisos para grupos y otros son r-x
Esto significa que los miembros del grupo y otros usuarios pueden leer y buscar en el directorio, pero no pueden crear ni eliminar archivos en él.
Intentemos eliminarlo ahora:
Al parecer, no tiene permiso para borrar.
Sin embargo, el propietario o usuario con privilegios de root debería poder eliminarlo, ¿verdad?
Mantengamos esta parte como bricolaje y una pregunta de seguimiento por curiosidad:
¿Se volverá a crear automáticamente cuando se elimine?
Arranque su terminal y descubra, ¡todo lo mejor!
Los comandos utilizados en el artículo se resumen en el enlace siguiente.
Puede descargarlo directamente o ejecutarlo – BlackHole