“/dev/zero” e “/dev/null” sono due file di dispositivo fittizi utili per creare file vuoti. Ma c'è una netta differenza in ciò che effettivamente fanno. In questo post vedremo la differenza tra i due e dove possono essere utilizzati.
file/dev/zero
Viene utilizzato per creare un file senza dati ma con la dimensione richiesta (un file con tutti gli zero scritti su di esso).
Creiamo il file con /dev/zero:
# dd if=/dev/zero of=/opt/zero.txt bs=2048 count=2048 2048+0 records in 2048+0 records out 4194304 bytes (4.2 MB) copied, 0.150465 s, 27.9 MB/s
Crea un file che contiene zeri continui. Quindi possiamo dire che /dev/zero è un file che viene utilizzato per creare un nuovo file con una dimensione richiesta senza alcun significato per i dati.
Puoi anche usare il file /dev/zero insieme al comando dd per cancellare un disco. Ad esempio:
# dd if=/dev/zero of=/dev/sda bs=2K conv=noerror,sync
Un altro file che può essere utilizzato anche in questo processo è/dev/null:
/dev/null
Mentre inviare tutto l'output è spesso una cosa carina da fare, un'altra cosa che ti ritroverai a fare regolarmente è reindirizzare gli errori (che ti aspetti da alcuni comandi) a un dispositivo speciale:/dev/null.
Il tipo nullo rivela la funzionalità:è una via di mezzo tra un bidone della spazzatura e un buco nero. Questo file è anche utile per creare file con dimensione zero.
Ad esempio, se vedi che ho pochi file e cartelle nella directory corrente:
# ls anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates Desktop Downloads Music Public Videos
Se reindirizzare l'output del comando "ls" al file "/dev/null", i dati di output non possono essere recuperati nuovamente anche dopo aver letto il file null:
# ls > /dev/null # cat /dev/null #
Come ricreare /dev/null
I comandi seguenti sono stati inseriti in una riga e separati da un punto e virgola ";" per essere eseguiti il più rapidamente e avere un effetto minimo sul sistema in esecuzione.
# rm /dev/null ; mknod -m 0666 /dev/null c 1 3 ; Execute: yes
Verifica che tutto sia a posto e a posto:
# ls -al /dev/null
Riepilogo
Quando reindirizziamo l'output su /dev/zero, fa esattamente lo stesso di /dev/null:i dati scompaiono. Tuttavia, in pratica, /dev/null viene spesso utilizzato per questo scopo.
Allora, perché avere questo dispositivo speciale allora? Perché /dev/zero può essere utilizzato anche per leggere byte nulli. Su tutti i 256 byte possibili, il byte nullo è il primo:lo 00 esadecimale. Un byte nullo viene spesso utilizzato per indicare la cessazione del comando.