„/dev/zero“ und „/dev/null“ sind zwei Dummy-Gerätedateien, die zum Erstellen leerer Dateien nützlich sind. Aber es gibt einen deutlichen Unterschied in dem, was sie tatsächlich tun. In diesem Beitrag werden wir den Unterschied zwischen den beiden sehen und wo sie verwendet werden können.
/dev/zero-Datei
Es wird verwendet, um eine Datei ohne Daten, aber mit der erforderlichen Größe zu erstellen (eine Datei, auf der nur Nullen stehen).
Erstellen wir eine Datei mit /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
Es erstellt eine Datei, die fortlaufende Nullen enthält. Wir können also sagen, dass /dev/zero eine Datei ist, die verwendet wird, um eine neue Datei mit einer bestimmten erforderlichen Größe ohne Bedeutung für die Daten zu erstellen.
Sie können auch die Datei /dev/zero in Verbindung mit dem Befehl dd verwenden, um eine Festplatte zu löschen. Zum Beispiel:
# dd if=/dev/zero of=/dev/sda bs=2K conv=noerror,sync
Eine weitere Datei, die ebenfalls in diesem Prozess verwendet werden kann, ist /dev/null:
/dev/null
Während das Senden der gesamten Ausgabe oft eine nette Sache ist, werden Sie regelmäßig Fehler (die Sie bei einigen Befehlen erwarten) auf ein spezielles Gerät umleiten:/dev/null.
Die Null-Art verschenkt die Funktionalität:Sie liegt irgendwo zwischen einem Mülleimer und einem schwarzen Loch. Diese Datei ist sogar hilfreich beim Erstellen von Dateien mit einer Größe von Null.
Wenn Sie beispielsweise sehen, dass ich wenige Dateien und Ordner im aktuellen Verzeichnis habe:
# ls anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates Desktop Downloads Music Public Videos
Wenn ich die Ausgabe des Befehls „ls“ in die Datei „/dev/null“ umleite, können die Ausgabedaten auch nach dem Lesen der Nulldatei nicht erneut abgerufen werden:
# ls > /dev/null # cat /dev/null #
Wie man /dev/null neu erstellt
Die folgenden Befehle wurden in einer Zeile platziert und durch ein Semikolon „;“ getrennt, um so schnell wie möglich ausgeführt zu werden und einen geringen Einfluss auf das laufende System zu haben.
# rm /dev/null ; mknod -m 0666 /dev/null c 1 3 ; Execute: yes
Stellen Sie sicher, dass alles in Ordnung und vorhanden ist:
# ls -al /dev/null
Zusammenfassung
Wenn wir die Ausgabe nach /dev/zero umleiten, macht es genau dasselbe wie /dev/null:Die Daten verschwinden. In der Praxis wird jedoch am häufigsten /dev/null für diesen Zweck verwendet.
Warum also dieses spezielle Gerät? Denn mit /dev/zero lassen sich auch Nullbytes auslesen. Von allen möglichen 256 Bytes ist das Null-Byte das erste:die hexadezimale 00. Ein Null-Byte wird oft verwendet, um die Beendigung eines Befehls anzuzeigen.