What does the 2> mean on the Unix command-line?

冷暖自知 提交于 2019-11-30 01:54:21
Yu Hao

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.

Suvarna Pattayil
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.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!