LINUX cmd >/dev/null 2>&1 解释

shell中可能经常能看到:cmd > /dev/null 2>&1
命令的结果可以通过%>的形式来定义输出,分解这个组合“>/dev/null 2>&1” 为五部分:
1:> 代表重定向到哪里,例如:echo “123″ > /home/123.txt;
2:/dev/null 代表空设备文件;
3:2 表示stderr标准错误;1 表示stdout标准输出;0 表示标准输入;

4:& 表示等同于的意思,2>&1,表示2(stderr)的输出重定向等同于1(stdout);

5:cmd的正常输出表示1(stdout);
因此,cmd >/dev/null 2>&1也可以写成“1> /dev/null 2> &1”

那么本文标题的语句执行过程为:
1 > /dev/null :表示标准输出(stdout)重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息;
2 > &1 :标准错误输出(stderr)重定向到标准输出(stdout),因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

即:

cmd > /dev/null 2>&1 标准输出和标准错误输出全部不显示;

cmd > /dev/null 可以将错误信息输出到控制台。

你可能感兴趣的:(linux自习室)