Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there a way to replace /dev/null device with a regular file (or a device that appends to a file, perhaps)? How much data is written to it?

(This slightly odd question is partially inspired by this..)

share|improve this question
Sorry if this sounds stupid and someone else understands, but I don't understand why it has the green-computing tag? – William Hilsum Oct 27 '09 at 2:05
It's in the linked article, solution #2. Kind of subtle, too. – gbarry Oct 27 '09 at 3:00
Why not just unplug your network from the wall and cat /dev/null > eth0 with the loose end of the cable in a waste bucket. Then you can easily weigh all the bits that fill it up on any ordinary household scale ;-) – DaveParillo Oct 27 '09 at 4:34
@Wil: It was a joke more than anything, see that was linked at the end of the question.. – dbr Oct 27 '09 at 17:50
up vote 11 down vote accepted

I would strongly advise against doing so ... depending on your system the resulting file could grow really fast. However, it's quite easy to have fun with a VM.

I will describe how to do this during one session, i.e. everything should be back the way they were after a reboot.

Obviously, this has to be done as root.

First, you need to delete the current /dev/null:

rm /dev/null

Then create a replacement file with the same name and some adequate permissions:

touch /dev/null
chmod 666 /dev/null

You may now visualize what is sent to /dev/null:

tail -f /dev/null

Finally to bring back /dev/null to its normal behaviour:

rm /dev/null
mknod /dev/null c 1 3
chmod 666 /dev/null
share|improve this answer

You can delete /dev/null and touch it as root, then restore it's permissions.

The special device goes away and you get a file instead.


share|improve this answer

On OpenBSD:

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

Some linuxes AFAIK have special device filesystems - devfs; udev - that may complicate this simple procedure.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .