What does the 2> mean on the Unix command-line? [closed]
File descriptor 2
represents standard error. (other special file descriptors include 0
for standard input and 1
for standard output).
2> /dev/null
means to redirect standard error to /dev/null
. /dev/null
is a special device that discards everything that is written to it.
Putting all together, this line of code stores the standard output of command ls $directory_/fallback_* 2> /dev/null
into the variable scriptlist
, and the standard error is discarded.
scriptlist=`ls $directory_/fallback_* 2> /dev/null`
As you have enclosed the whole line ls $directory_/fallback_* 2> /dev/null
in backticks, the output of the ls
command is stored in scriptlist
variable.
Also, the 2>
is for redirecting the output of stderr
to /dev/null
(nowhere).
any idea what exactly the '2' is doing over here
Here 2
is a file descriptor referring to STDERR
.
2> /dev/null
implies that STDERR
be redirected to the null device /dev/null
.
The complete line you've mentioned stores the output, i.e. STDOUT
(ignoring the STDERR
), returned by ls $directory_/fallback_*
into the variable scriptlist
.