Propósito de / dev / zero?

49

He intentado cat /dev/zero, y no parecía que hacer nada. Busqué en Google /dev/zeroy dice que es básicamente un archivo en blanco con un tamaño infinito. ¿Se catimprime un número infinito de caracteres inexistentes? ¿Como funciona esto? ¿Cómo proporciona datos infinitos si son 0 bytes? ¿Cuáles son los usos de este archivo, si uno simplemente puede crear un archivo en blanco?

tkbx
fuente
11
Ejecutar cat -v /dev/zeropara ver lo que está haciendo. Consulte Borrar espacio no utilizado con ceros (ext3, ext4) para un propósito común.
manatwork
También hay / dev / null que se comporta como un archivo vacío si desea leerlo y como un agujero negro si lo escribe.
jofel
@jofel pero no puedes usar / dev / null para infinitos 0 bits, ¿verdad? cat foo > /dev/nully cat foo > /dev/zeroson lo mismo, pero cat /dev/nully cat /dev/zerono son lo mismo, ¿correcto?
tkbx
@tkbx sí, correcto. /dev/nulldevuelve inmediatamente EOF si un programa quiere leer de él. /dev/zerodevuelve infinitamente 0 bytes.
jofel

Respuestas:

53

/dev/zero¿Es un archivo especial (en este caso, un pseudodispositivo) que proporciona una secuencia interminable de caracteres nulos (por lo tanto, hexadecimal 0x00)? Es por eso catque no está generando nada (pero intente ejecutarlo 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 quiera, por ejemplo con dd(me gusta 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 puede escribirle, haciéndolo funcionar como un sumidero ( /dev/nullaunque su hermano más popular se usa más comúnmente para esto).

Konerak
fuente
Sin embargo, ¿por qué alguien querría llenar un espacio en blanco?
tkbx
55
Por ejemplo, para borrar lo que había antes. O al transmitir.
Konerak
44
No he leído el srmmanual o la fuente, pero la mayoría de los 'borradores seguros' prefieren escribir datos (pseudo-) aleatorios en lugar de poner a cero una unidad, ya que una pasada de cero no es lo suficientemente segura (ciertas agencias de tres letras aún puede deducir el contenido original de un disco duro puesto a cero, ya que los bits individuales no son 100% verdaderamente 1 o 0, sino solo "en su mayoría 1" o "en su mayoría 0". Compárelo con una palanca que puede colocar "completamente a la izquierda "o 'todo el camino correcto', pero por lo general sólo un giro hacia el otro lado es suficiente.
Konerak
11
@tkbx intentando dduna partición, es posible que desee llenar todo el espacio vacío a 0 en lugar de al azar para obtener un archivo comprimido más pequeño más tarde.
neurino
1
@Konerak Sospecho bastante de eso. Lo he escuchado decir por todas partes y nunca he visto evidencia de que sea posible en un disco duro remotamente nuevo (fabricado en los últimos 10 años al menos).
Rob