其实,简单理解的话:command > /dev/null 2>&1 和 command &> /dev/null 是一样的。
专业点解释就是:将标准错误重定向到标准输出,然后将标准输出(标准错误和标准输出)重定向到 黑洞(/dev/null)!
简单点理解就是:把命令的标准输出和标准错误全都扔了!
command > /dev/null 2>&1
[root@master ~]# ll no_exist.txt
ls: cannot access no_exist.txt: No such file or directory
[root@master ~]# ll no_exist.txt > /dev/null
ls: cannot access no_exist.txt: No such file or directory
[root@master ~]# ll no_exist.txt > /dev/null 2>&1
command &> /dev/null
[root@master ~]# ll no_exist.txt
ls: cannot access no_exist.txt: No such file or directory
[root@master ~]# ll no_exist.txt > /dev/null
ls: cannot access no_exist.txt: No such file or directory
[root@master ~]# ll no_exist.txt &> /dev/null
注意:
/dev/null 是一个被称作 Linux 黑洞的文件,把输出信息重定向到这个文件等同于删
除数据(类似于没有回收功能的垃圾箱),可以让用户的屏幕窗口保持简洁。
当然,如果你想把标准输出和标准错误保存下来的话,/dev/null 也可以替换成具体的输出文件。