|
Chapter 13 Redirecting Input and Output
|
|
It isn't a file, actually, though you can use it like one.
/dev/null
is a UNIX device.
[4]
It's not a physical device.
/dev/null
is a special device that "eats" any text written to it
and returns "end-of-file" (a file of length 0) when you read from it.
So what the heck can you use it for?
Empty another file.
Just copy /dev/null
"on top of" the other file . (24.1
)
Make another program "quiet" by redirecting its output there.
For instance, if you're putting a program into the background
and you don't want it to bother you, type:
% progname
> /dev/null &
That
redirects (13.1
)
standard output but leaves standard error hooked to your
terminal, in case there is an error.
Answer a program that asks a lot of questions-you know you'll just press
RETURN
at each prompt.
In a lot of cases, you can redirect the program's standard input from
/dev/null
:
% progname
< /dev/null
Want the default setup? If yes, press RETURN:
Enter filename or press RETURN for default:
...
You should test that with each program, though, before you assume this trick
will work.
(If it doesn't work, try
yes
(23.4
)
.)
Where a program needs an extra filename but you don't want it to read or
write an actual file.
For instance, the
grep
(27.1
)
programs won't give the name of the file where they find a match unless there
are at least two filenames on the command line.
When you use a wildcard in a directory where maybe only one file will match,
use /dev/null
to be sure that grep
will always see more than one : (17.20
)
% grep "
whatever
" * /dev/null
You're guaranteed that grep
won't match its regular expression in
/dev/null
. :-)
Article
24.2
shows even more uses for /dev/null
.
Another interesting device (mostly for programmers) is /dev/zero
.
When you read it, you'll get
ASCII zeros (NUL characters) (51.3
)
forever.
There are no newlines either.
For both of those reasons, many UNIX commands have trouble reading it.
If you want to play, the command below will give you a start (and
head
(25.20
)
will give you a stop!):
[5]
fold
od
|
% fold -20 /dev/zero | od -c | head
|
|
|