浅谈> /dev/null 2>&1

在crond计划任务、nohup中我们经常可以看到>/dev/null 2>&1,但是很多人并不理解其含义,想要真正的理解它,首先我们需要知道文件描述符的三种类型。

类型 文件描述符 重定向符号 位置
标准输入(stdin) 0 0<或0<< /dev/stdin -> /proc/self/fd/0
标准输出(stdout) 1 1>或1>> /dev/stdout -> /proc/self/fd/1
错误输出(stderr) 2 2>或2>> /dev/stderr -> /proc/self/fd/2
标准输入重定向"0<""0<<"等同于"<""<<",我们在平时使用时一般都省略了"0"
标准输出重定向"1>""1>>"等同于">"">>",我们在平时使用时一般都省略了"1"

通过上面的表格,我们将>/dev/null 2>&1拆开来看就容易理解的多

\>/dev/null 将标准输出重定向到空设备,即我们常说的“黑洞”

2>表示错误输出

&表示等同的意思

1标准输出

2>&1就表示错误输出重定向等同于标准输出

所以>/dev/null 2>&1就表示将标准输出及错误输出全部重定向到“黑洞”,这么做可以有效的防止结果输出到控制台,以及inode节点被写满。

发布了162 篇原创文章 · 获赞 142 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_44571270/article/details/104231797
今日推荐