Respuestas:
Sí, ambos aceptan y descartan todas las entradas, pero su salida no es la misma:
/dev/null
No produce salida ./dev/zero
produce un flujo continuo de bytes NULL (valor cero) .Puede ver la diferencia ejecutando cat /dev/null
y cat /dev/zero
.
Intenta cat /dev/null > file
y 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/zero
da una secuencia interminable de caracteres \0
(nulos).
Use dd
para 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:
mmap
ping /dev/zero
con MAP_PRIVATE
es la forma "portátil" de obtener una asignación de memoria anónima (en ausencia de extensiones como MAP_ANON
).
/dev/null
no produce salida: señala EOF de inmediato.
rm -f /dev/zero ; echo -n 111111111111 > /dev/zero
* huye *