Differenza tra / dev / null e / dev / zero


27

Quando si tenta di reindirizzare a /dev/nulle /dev/zero, l'output viene scartato. Sembra sia /dev/nulle /dev/zeroaccetta e scarta tutti gli input. Quindi, qual è la differenza tra /dev/nulle /dev/zero?


6
rm -f /dev/zero ; echo -n 111111111111 > /dev/zero* scappa *
joeytwiddle il

Risposte:


52

Sì, entrambi accettano e scaricano tutti gli input, ma il loro output non è lo stesso:

  • /dev/nullnon produce output .
  • /dev/zeroproduce un flusso continuo di byte NULL (valore zero) .

Puoi vedere la differenza eseguendo cat /dev/nulle cat /dev/zero.

  • Prova cat /dev/null > filee 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/zerofornisce un flusso infinito di caratteri \0(null).

Utilizzare ddper 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:



2
Vale la pena notare: mmapping /dev/zerocon MAP_PRIVATEè il modo "portatile" per ottenere una mappatura della memoria anonima (in assenza di estensioni come MAP_ANON).
nneonneo,

6
Forse non ovvio per il lettore occasionale è proprio come /dev/null non produce alcun output: segnala immediatamente EOF.
Peter - Ripristina Monica l'

Esiste un dispositivo che fornisce tutti?
Aaron Franke,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.