43.12. What Can You Do with an Empty File?
It isn't a file,
actually, though you can use it like one.
/dev/null is a Unix device.[132] 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 (Section 15.2).
-
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 (Section 43.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 (Section 14.5).)
-
Where a program needs an extra filename but you
don't want it to read or write an actual file. For
instance, the grep (Section 13.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 (Section 9.21):
% grep "outputfile" * /dev/null
You're guaranteed that grep
won't match its regular expression in
/dev/null.
-
Section 15.3 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) 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
(Section 12.12) will give you a stop!):[133]
od Section 12.4
% fold -20 /dev/zero | od -c | head
-- JP
| | | 43.11. Named Pipes: FIFOs | | 44. Devices |
Copyright © 2003 O'Reilly & Associates. All rights reserved.
|
|