本文转载自https://blog.51cto.com/tianya30/2298864,如有版权问题请联系博主删除
Linux有三个标准IO,stdin,stdout,stderr,对应的文件描述符是0,1,2.
2>&1的意思就是将标准错误重定向到标准输入上,
为什么还要一个&符号,是因为&后面必须要跟文件描述符,
否则2>1的意思就成了将标准错误重定向到文件名为1的文件中了。
1>/dev/null的意思是将标准输出重定向到一个/dev/null的设备文件,null表示一个空设备文件,可以理解为null是个无底洞。
所以2>&1 1>/dev/null,这一句就是将标准错误重定向到标准输入,同时标准输出又重定向到一个/dev/null的设备文件,也就是stdin/stdout都重定向到一个/dev/null的设备文件。
如下例子:
xxx_process 2>&1 1>/dev/null &,
启动一个进程名为xxx_process 将其运行的输出log重定向到/dev/null文件上去,
也就是该进程中printf就打印不了log,同时该进程后台运行。
本文深入解析Linux系统中标准输入(stdin)、标准输出(stdout)及标准错误(stderr)的重定向操作,如2>&1和1>/dev/null等,通过实例说明如何将进程输出重定向至空设备文件,实现日志静默处理。
1591

被折叠的 条评论
为什么被折叠?



