Risposte:
Sì, entrambi accettano e scaricano tutti gli input, ma il loro output non è lo stesso:
/dev/null
non produce output ./dev/zero
produce un flusso continuo di byte NULL (valore zero) .Puoi vedere la differenza eseguendo cat /dev/null
e cat /dev/zero
.
Prova cat /dev/null > file
e troverai un vuoto file
.
Ora prova cat /dev/zero > file
, mentre guardi la dimensione del file ( watch -n 1 du -h file
) aumentare continuamente. Questo perché la lettura da /dev/zero
fornisce un flusso infinito di caratteri \0
(null).
Utilizzare dd
per visualizzare la differenza in modo più appropriato:
$ 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
viene utilizzato per creare file fittizi o scambiare.
Visita anche:
mmap
ping /dev/zero
con MAP_PRIVATE
è il modo "portatile" per ottenere una mappatura della memoria anonima (in assenza di estensioni come MAP_ANON
).
/dev/null
non produce alcun output: segnala immediatamente EOF.
rm -f /dev/zero ; echo -n 111111111111 > /dev/zero
* scappa *