Diferencia entre / dev / null y / dev / zero

27

Al intentar redirigir a /dev/nully /dev/zero, la salida se descarta. Parece ambos /dev/nully /dev/zeroacepta y descarta todas las entradas. Entonces, ¿cuál es la diferencia entre /dev/nully /dev/zero?

Pandya
fuente
66
rm -f /dev/zero ; echo -n 111111111111 > /dev/zero* huye *
joeytwiddle

Respuestas:

52

Sí, ambos aceptan y descartan todas las entradas, pero su salida no es la misma:

  • /dev/nullNo produce salida .
  • /dev/zeroproduce un flujo continuo de bytes NULL (valor cero) .

Puede ver la diferencia ejecutando cat /dev/nully cat /dev/zero.

  • Intenta cat /dev/null > filey encontrarás un vacío file.

  • Ahora intente cat /dev/zero > file, mientras observa que el tamaño del archivo ( watch -n 1 du -h file) aumenta continuamente. Esto se debe a que leer de /dev/zeroda una secuencia interminable de caracteres \0(nulos).

Use ddpara visualizar la diferencia más apropiadamente:

$ dd if=/dev/null of=file count=10
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000276193 s, 0.0 kB/s

$ dd if=/dev/zero of=file count=10
10+0 records in
10+0 records out
5120 bytes (5.1 kB) copied, 0.00090775 s, 5.6 MB/s

/dev/zero se usa para crear archivos ficticios o intercambiar.

Visita también:

Pandya
fuente
Ver también thecodelesscode.com/case/6
kojiro
2
Vale la pena señalar: hacer mmapping /dev/zerocon MAP_PRIVATEes la forma "portátil" de obtener una asignación de memoria anónima (en ausencia de extensiones como MAP_ANON).
nneonneo
66
Tal vez no sea obvio para el lector casual es simplemente cómo /dev/null no produce salida: señala EOF de inmediato.
Peter - Restablece a Mónica el
¿Hay un dispositivo que da todos los?
Aaron Franke