What does the 2> mean on the Unix command-line? [closed] What does the 2> mean on the Unix command-line? [closed] shell shell

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.