Scopo di / dev / zero?


49

Ci ho provato cat /dev/zeroe non sembrava fare nulla. Ho cercato su Google /dev/zero, e dice che è fondamentalmente un file vuoto con dimensioni infinite. La catstampa è un numero infinito di caratteri inesistenti? Come funziona? In che modo fornisce dati infiniti se è 0 byte? Quali sono gli usi di questo file, se si può semplicemente creare un file vuoto?


11
Corri cat -v /dev/zeroper vedere cosa sta facendo. Vedere Cancella spazio inutilizzato con zeri (ext3, ext4) per uno scopo comune.
arte

C'è anche / dev / null che si comporta come un file vuoto se si desidera leggerlo e come un buco nero se si scrive su di esso.
jofel

@jofel ma non puoi usare / dev / null per infiniti 0-bit, giusto? cat foo > /dev/nulle cat foo > /dev/zerosono gli stessi, ma cat /dev/nulle cat /dev/zeronon sono la stessa cosa, giusto?
tkbx,

@tkbx sì, corretto. /dev/nullrestituisce immediatamente EOF se un programma vuole leggere da esso. /dev/zerorestituisce infinitamente 0 byte.
jofel

Risposte:


53

/dev/zeroè un file speciale (in questo caso uno pseudo-dispositivo) che fornisce un flusso infinito di caratteri null (quindi hex 0x00)? Ecco perché catnon stai producendo nulla (ma prova a eseguirlo od(discarica ottale)).

'file vuoto con dimensioni infinite' non è corretto al 100%: non è un file normale, ma un file speciale (più simile a uno 'stream' o un generatore). Puoi leggere tutto quello che vuoi, ad esempio con dd(mi piace dd if=/dev/zero of=yourfile count=1024 bs=1024).

Non è in realtà un file vuoto , né utilizzato per creare file vuoti: è usato per creare file o pagine di memoria piene di soli zero. Puoi anche scrivergli, rendendolo performante come una dolina (il suo fratello più popolare /dev/nullè più comunemente usato per questo però).


Perché qualcuno dovrebbe voler riempire uno spazio vuoto, però?
tkbx,

5
Ad esempio, per cancellare ciò che c'era prima. O durante la trasmissione.
Konerak,

4
Non ho letto il srmmanuale o l'origine, ma la maggior parte dei "cancellatori sicuri" preferisce scrivere dati (pseudo-) casuali invece di azzerare un'unità, poiché un passaggio di azzeramento non è abbastanza sicuro (alcune agenzie di tre lettere può ancora dedurre il contenuto originale di un disco fisso azzerato, poiché i singoli bit non sono realmente 1 o 0 al 100%, ma solo "principalmente 1" o "principalmente 0". Confrontalo con una leva che puoi mettere "completamente a sinistra "o" fino in fondo ", ma di solito basta uno swing dall'altra parte.
Konerak,

11
@tkbx provando a creare dduna partizione potresti voler riempire tutto lo spazio vuoto a 0 anziché casuale per ottenere un file compresso più piccolo in seguito.
neurino,

1
@Konerak Ne sono abbastanza sospettoso. Ho sentito dire tutto dappertutto e non ho mai visto una volta la prova che è possibile su qualsiasi nuovo hard disk da remoto (realizzato almeno negli ultimi 10 anni).
Rob
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.