¿Propósito de / dev / zero?
On febrero 17, 2021 by admin Intenté cat /dev/zero
y no pareció hacer nada. Busqué en Google /dev/zero
, y dice que es básicamente un archivo en blanco con un tamaño infinito. ¿cat
está imprimiendo una cantidad infinita de caracteres inexistentes? ¿Como funciona esto? ¿Cómo proporciona datos infinitos si tiene 0 bytes? ¿Cuáles son los usos de este archivo, si uno puede simplemente crear un archivo en blanco?
Comentarios
Respuesta
/dev/zero
es un archivo especial (en este caso, un pseudodispositivo) que proporciona un flujo interminable de caracteres nulos (entonces hexadecimal 0x00)? Es por eso que su cat
no genera nada (pero intente ejecutarlo a través de od
(volcado octal)).
«archivo en blanco con tamaño infinito» no es 100% correcto: no es un archivo normal, sino un archivo especial (más como un «flujo» o un generador). Puede leer todo lo que desee, por ejemplo, con dd
(como dd if=/dev/zero of=yourfile count=1024 bs=1024
).
«No es realmente un archivo en blanco , ni se usa para crear archivos en blanco: se usa para crear archivos o páginas de memoria llenas de solo ceros. También puedes escribirle, haciéndolo funcionar como un sumidero (su hermano más popular /dev/null
se usa más comúnmente para esto).
Comentarios
- Sin embargo, ¿por qué alguien querría llenar un espacio en blanco?
- Por ejemplo, para borrar lo que había antes. O al transmitir.
- Yo ' no he leído el
srm
manual o fuente, pero la mayoría de ' borradores seguros ' prefieren escribir datos (pseudo) aleatorios en lugar de poner a cero una unidad, ya que un paso de puesta a cero no es lo suficientemente seguro (Algunas agencias de tres letras aún pueden deducir el contenido original de un disco duro con cero, ya que los bits individuales no son 100% verdaderos 1 o 0, sino solo " principalmente 1 " o " en su mayoría 0 ". Compárelo con una palanca que puede poner " completamente a la izquierda " o " completamente a la derecha ", pero por lo general solo un giro hacia el otro lado es suficiente. - @tkbx tratando de
dd
una partición, es posible que desee llenar todo el espacio vacío hasta 0 en lugar de aleatorio para obtener un archivo comprimido más pequeño lat er. - @Konerak Yo ' sospecho bastante de eso. ' lo he oído decir por todas partes y ' nunca he visto pruebas de que sea posible en un disco duro remotamente nuevo ( hecho en los últimos 10 años al menos).
cat -v /dev/zero
para ver qué está haciendo. Consulta Limpia el espacio no utilizado con ceros (ext3, ext4) . para un propósito común.cat foo > /dev/null
ycat foo > /dev/zero
son iguales, perocat /dev/null
ycat /dev/zero
aren ' t igual, ¿correcto?/dev/null
devuelve inmediatamente EOF si un programa quiere leer de él./dev/zero
devuelve infinitamente 0 bytes.