Gibt es eine Möglichkeit, / dev / null durch eine tatsächliche Datei zu ersetzen?

1550
dbr

Gibt es eine Möglichkeit, ein /dev/nullGerät durch eine reguläre Datei (oder ein Gerät, das an eine Datei angehängt wird) zu ersetzen ? Wie viele Daten werden darauf geschrieben?

(Diese etwas seltsame Frage ist teilweise von diesem inspiriert .)

2
Tut mir leid, wenn sich das dumm anhört und jemand anders versteht, aber ich verstehe nicht, warum es das Green-Computing-Tag hat? William Hilsum vor 14 Jahren 4
Es ist in dem verlinkten Artikel, Lösung Nr. 2. Etwas subtil auch. gbarry vor 14 Jahren 1
Warum trennen Sie nicht einfach Ihr Netzwerk von der Wand und "cat / dev / null> eth0" mit dem losen Ende des Kabels in einem Abfallbehälter. Dann kannst du leicht alle Teile wiegen, die es auf einer gewöhnlichen Haushaltswaage füllen ;-) DaveParillo vor 14 Jahren 5
@ Will: Es war mehr als alles andere ein Witz, siehe http://c2.com/cgi/wiki?DevNull, der am Ende der Frage verlinkt wurde. dbr vor 14 Jahren 0

3 Antworten auf die Frage

13
avelldiroll

Ich würde dringend davon abraten, dies zu tun ... Je nach System kann die resultierende Datei sehr schnell wachsen. Es ist jedoch ziemlich einfach, Spaß mit einer VM zu haben.

Ich werde beschreiben, wie dies während einer Sitzung geschieht, dh alles sollte so sein, wie es nach einem Neustart war.

Natürlich muss dies als root erfolgen.

Zuerst müssen Sie das aktuelle / dev / null löschen :

rm /dev/null 

Erstellen Sie dann eine Ersatzdatei mit demselben Namen und einigen angemessenen Berechtigungen:

touch /dev/null chmod 666 /dev/null 

Sie können nun visualisieren, was an / dev / null gesendet wird :

tail -f /dev/null 

Zum Schluss bringen Sie / dev / null zu ihrem normalen Verhalten zurück:

rm /dev/null mknod /dev/null c 1 3 chmod 666 /dev/null 
1
Tim Williscroft

Sie können / dev / null löschen und als root berühren und dann die Berechtigungen wiederherstellen.

Das spezielle Gerät verschwindet und Sie erhalten stattdessen eine Datei.

genießen.

1
ayrnieu

In OpenBSD:

cd /dev sudo mv null blah sudo touch null sudo chmod a+rwx null echo foo > /dev/null 

Einige Linux-AFAIK-Geräte verfügen über spezielle Gerätedateisysteme - devfs; udev - das kann diese einfache Prozedur komplizieren.