: 覆盖
>>: 追加
ls >/dev/null 2>&1 相当于 ls 1>/dev/null 2>&1
数字和>之间不能有空格
0:表示键盘输入(stdin)
1:表示标准输出(stdout),系统默认是1
2:表示错误输出(stderr)
所以1> /dev/null 2>&1表示将1(标准输出)重定向到/dev/null文件,将2(标准错误输出)重定向到1。2>&1表示的是2的输出重定向等同于1 的输出重定向,也就是/dev/null文件。如果写成这种形式:
ls 1>/dev/null 2>1
ll &> /dev/null 混合输出
其实也能实现标准错误输出的重定向,但是重定向的位置不是标准输出,而是文件“1”,系统会创建一个文件“1”然后保存标准错误输出的信息。