1. to discard output of a command
2. to suppress any potential error messages from a command
You may already know that you can redirect the output to a
1. file using greater than symbol ">" and
2. command using pipe symbol "|"
Redirection to /dev/null works just as if the redirection was to a file. The only exception that the output cannot be retrieved.
Before we dive in, it's important to know that standard output is represented as 1 and standard error as 2.
ls -1 c* 2> /dev/null #redirects the standard error (2)
ls -1 c* &> /dev/null #redirects both the stderr (2) and stdout(1)
#variations include 2>&1, >>
ls -1 c* 1> /dev/null #redirects the std output (1)
#variation is >
if test ! -z "`ls -1 y* 2> /dev/null`" ; then
echo "Files starting with y exist."
else
echo "Files starting with y DO NOT exist."
fi
if test ! -z "`ls -1 x* `" ; then
echo "Files starting with x exist."
else
echo "Files starting with x DO NOT exist."
fi
To think about -
1. What happens when you do > filename?
2. What happens with you do > instead of 1> in the first example?
3. What does this do? ls -1 c* 2> logfile > file.lst
No comments:
Post a Comment