千家信息网

linux的标准输出重定向2>&1 1>

发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,Linux有三个标准IO,stdin,stdout,stderr,对应的文件描述符是0,1,2.2>&1的意思就是将标准错误重定向到标准输入上,为什么还要一个&符号,是因为&后面必须要跟文件描述符,否
千家信息网最后更新 2024年11月30日linux的标准输出重定向2>&1 1>

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,同时该进程后台运行。

0