- Dev/null
-
/dev/null ist der POSIX-genormte Name einer speziellen virtuellen Gerätedatei auf UNIX und Unix-ähnlichen Betriebssystemen.
Details
Das Gerät /dev/null dient als „Ausguss“ im Datenstrom. Alle Daten, die dorthin geschrieben werden, werden verworfen. Lesezugriffe liefern sofort ein Dateiende (EOF). Dabei verhält sich das Gerät wie eine gewöhnliche Datei, das öffnende Programm muss also keine besonderen Vorkehrungen treffen.
Eine häufige Verwendung ist z. B., in einer Shell-Sitzung die Meldungen eines Programms von der Standardausgabe nach /dev/null umzuleiten, wenn man an ihnen nicht interessiert ist:
$ kommando >/dev/null
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.
Weitere 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 (die Standardfehlerausgabe wird mit Dateideskriptor 2 angegeben):
$ programm 2>/dev/null
Möchte man zum Beispiel für Shell Skripte nur den Return Code eines Programms verwenden und somit sämtliche Ausgaben nach /dev/null umleiten, kann der folgende Syntax verwendet werden:
$ programm >/dev/null 2>&1
Insbesondere in Shell-Pipelines kann man so selektiv uninteressante (Fehler-)Meldungen von Teilen der Pipeline ausblenden:
$ programm1 2>/dev/null | programm2 | ...
Das Gerät /dev/null kann auch als Ziel bei Dateisystemoperationen dienen:
$ cp datei /dev/null
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.
Ähnlich ist die Verwendung mittels Soft Link:
$ ln -sf /dev/null ~/.bash_history
Danach wird alles, was in die verlinkte Datei (~/.bash_history) geschrieben wird, nicht gespeichert, beispielsweise zum Datenschutz.
Siehe auch
Wikimedia Foundation.