Zweck von / dev / zero?

49

Ich habe versucht cat /dev/zero, und es schien nichts zu tun. Ich habe gegoogelt /dev/zeround es heißt, es ist im Grunde eine leere Datei mit unendlicher Größe. Gibt es cateine unendliche Anzahl nicht vorhandener Zeichen? Wie funktioniert das? Wie liefert es unendliche Daten, wenn es 0 Bytes ist? Wozu dient diese Datei, wenn man einfach eine leere Datei erstellen kann?

tkbx
quelle
11
Laufen Sie, um cat -v /dev/zerozu sehen, was es tut. Siehe Löschen von nicht verwendetem Speicherplatz mit Nullen (ext3, ext4) für einen allgemeinen Zweck.
Manatwork
Es gibt auch / dev / null, das sich wie eine leere Datei verhält, wenn Sie es lesen möchten, und wie ein schwarzes Loch, wenn Sie darauf schreiben.
Jofel
@jofel, aber Sie können / dev / null nicht für unendliche 0-Bits verwenden, oder? cat foo > /dev/nullund cat foo > /dev/zerosind gleich, aber cat /dev/nullund cat /dev/zerosind nicht gleich, richtig?
tkbx
@tkbx ja, richtig. /dev/nullGibt sofort EOF zurück, wenn ein Programm daraus lesen möchte. /dev/zerogibt unendlich 0-Bytes zurück.
Jofel

Antworten:

53

/dev/zeroist eine spezielle Datei (in diesem Fall ein Pseudo-Gerät), die einen endlosen Strom von Null-Zeichen (also hex 0x00) liefert? Das ist der Grund, warum Sie catnichts ausgeben (aber versuchen Sie es durchzulaufen od(oktaler Speicherauszug)).

'Leere Datei mit unendlicher Größe' ist nicht zu 100% korrekt: Es handelt sich nicht um eine reguläre Datei, sondern um eine spezielle Datei (eher wie ein 'Stream' oder ein Generator). Sie können so viel davon lesen, wie Sie möchten, zum Beispiel mit dd(like dd if=/dev/zero of=yourfile count=1024 bs=1024).

Es ist keine leere Datei und wird auch nicht zum Erstellen leerer Dateien verwendet: Es wird zum Erstellen von Dateien oder Speicherseiten verwendet, die nur mit Nullen gefüllt sind. Sie können auch darauf schreiben, sodass es wie ein Dreckloch wirkt (der beliebtere Bruder /dev/nullwird jedoch häufiger dafür verwendet).

Konerak
quelle
Warum sollte jemand eine Lücke füllen wollen?
tkbx
5
Zum Beispiel, um das zu löschen, was vorher da war. Oder beim Senden.
Konerak
4
Ich habe das srmHandbuch oder die Quelle nicht gelesen , aber die meisten "sicheren Radierer" ziehen es vor, (pseudo-) zufällige Daten zu schreiben, anstatt ein Laufwerk auf Null zu setzen, da ein Durchgang des Nullstellens nicht sicher genug ist (bestimmte Drei-Buchstaben-Agenturen) Der ursprüngliche Inhalt einer Festplatte mit Nullen kann immer noch abgezogen werden, da die einzelnen Bits nicht zu 100% echte 1 oder 0 sind, sondern nur "meistens 1" oder "meistens 0". Vergleichen Sie es mit einem Hebel, den Sie ganz nach links setzen können "oder" den ganzen Weg richtig ", aber in der Regel nur ein Schwung auf die andere Seite ist genug.
Konerak
11
Wenn Sie versuchen, ddeine Partition zu erstellen, möchten Sie möglicherweise den gesamten leeren Speicherplatz auf 0 anstatt auf zufällig setzen, um später eine kleinere komprimierte Datei zu erhalten.
Neurino
1
@Konerak Ich bin ziemlich misstrauisch. Ich habe überall gehört, dass es gesagt wird, und ich habe noch nie einen Beweis dafür gesehen, dass es auf einer neuen (zumindest in den letzten 10 Jahren hergestellten) Festplatte möglich ist.
Rob