- /dev/null
-
/dev/null (englisch null: dt. „nichts“) ist der Name einer speziellen virtuellen Gerätedatei, dem Nulldevice, auf UNIX und Unix-ähnlichen Betriebssystemen, die jegliche Daten, die dorthin geschrieben werden, verwirft. Unter DOS und Nachfolgerbetriebssystemen existiert das Nulldevice in jedem Verzeichnis unter dem Dateinamen NUL. Der POSIX-Standard enthält /dev/null nicht, da POSIX keine Pfade standardisiert.
Inhaltsverzeichnis
Verwendung
Eine häufige Verwendung ist z. B., in einer Shell-Sitzung die Meldungen eines Programms von der Standardausgabe statt auf den Bildschirm nach /dev/null umzuleiten, wenn man an ihnen nicht interessiert ist; sie werden dann nicht angezeigt. Das Gerät /dev/null kann auch als Ziel bei Dateisystemoperationen dienen. Ein solcher Zweck tritt gelegentlich auf, wenn Shellskripte oder Programme unbedingt eine Dateiangabe erfordern, diese im vorliegenden Fall aber keinen Sinn ergibt oder unerwünscht ist.
Lesezugriffe liefern sofort ein Dateiende (End of File, „EOF“). Dabei verhält sich das Gerät wie eine gewöhnliche Datei, das öffnende Programm muss also keine besonderen Vorkehrungen treffen.
In der Netzkultur ist /dev/null ein umgangssprachlich verwendeter Begriff für eine Art gedankliches Schwarzes Loch, meist um Desinteresse an der Aussage des Gesprächspartners zu bekunden.
Beispiele
Wenn man nur die normale Ausgabe eines Programms sehen will, nicht aber die Fehlermeldungen und sonstigen Informationen, die das Programm in die Standardfehlerausgabe schreibt, kann man diese umleiten:
-
-
$ programm 2>/dev/null
-
Möchte man für Shell-Skripte nur den Rückgabewert eines Programms verwenden und somit sämtliche Ausgaben nach /dev/null umleiten, kann die folgende Syntax verwendet werden:
-
-
$ programm >/dev/null 2>&1
-
Mittels Shell-Pipes kann man selektiv uninteressante (Fehler-)Meldungen von Teilen der Pipeline ausblenden:
-
-
$ programm1 2>/dev/null | programm2 | ...
-
Ähnlich ist die Verwendung mittels symbolischer Verknüpfung, danach wird alles, was in die verlinkte Datei (~/.bash_history) geschrieben wird, nicht gespeichert, beispielsweise zum Datenschutz:
-
-
$ ln -sf /dev/null ~/.bash_history
-
Auch üblich ist die Verwendung für die Standardeingabe. Ein Beispiel dafür ist das Ausführen eines Kommandos im Hintergrund, während einer SSH-Sitzung. Dabei wird die Standardeingabe an /dev/null übergeben, womit das Programm im Hintergrund weiterläuft, auch wenn man sich aus der ssh Sitzung ausloggt:
-
-
$ ssh example.com "programm </dev/null >/dev/null 2>&1 &"
-
Man kann auch einen Datenträger überprüfen, indem z.B. /dev/cdrom0 nach /dev/null kopiert wird. Wenn hierbei ein Fehler auftritt, ist der entsprechende Datenträger beschädigt oder nicht vorhanden.
-
-
$ dd if=/dev/cdrom of=/dev/null
-
Siehe auch
Weblinks
- /dev/null im Jargon File (englisch)
- Anwendungsbeispiele
-
Wikimedia Foundation.