command>file 2>file
将命令产生的标准输出(stdout)信息和错误的输出(stderr)信息都发送到file文件中。
这样file文件会被打开两次stdout和stderr会相互覆盖。
command > file 2>&1
command产生的输出都将发送到file文件,file文件只打开一次。
command > /dev/null 2>&1
这条命令的意思是将标准输出和错误输出全部重定向到/dev/null中,也就是将产生的所有信息丢弃。
/dev/null代表空设备文件,不占用任何磁盘空间,就像一个无底洞。
1:> 代表重定向到哪里,例如:echo “123” > /home/123.txt
2:/dev/null 代表空设备文件
3:2> 表示stderr标准错误
4:& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
5:1 表示stdout标准输出,系统默认值是1,所以”>/dev/null”等同于 “1>/dev/null”
因此,>/dev/null 2>&1也可以写成“1> /dev/null 2> &1”