文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>你理解 “/dev/null 2>&1” 的意思了吗?

你理解 “/dev/null 2>&1” 的意思了吗?

时间:2009-04-14  来源:huifeideluotuo

在crond任务中,我们经常见到这样的 cron 任务,如下:
00 5 * * * /usr/sbin/ntpdate 222.168.10.10  >  /opt/time_cron  2>&1

这条命令的意思是将标准输出和错误输出全部重定向到 /opt/time_cron 文件中,你也可以置空到/dev/null中,也就是将产生的所有信息丢弃,这里需要解释下:

0,标准输入
1, 标准输出(stdout)
2,标准错误输出(stderr)

当然也可以这么写:command > file 2>file,,那么这样和 command > file 2>&1 的区别是:

command > file 2>file 的意思是将命令所产生的标准输出信息,和错误的输出信息送到file 中,这样的写法会将 stdout和 stderr 都直接送到file中, file会被打开两次,这样 stdout 和 stderr 会互相覆盖,这样写相当使用了FD1和FD2两个同时去抢占file 的管道.
command > file 2>&1 的意思就是将stdout直接送向file, stderr 继承了FD1管道后,再被送往file,此时,file 只被打开了一次,也只使用了一个管道FD1,它包括了stdout和stderr的内容.

注意:
    1,从IO效率上,前一条命令的效率要比后面一条的命令效率要低,所以在编写shell脚本的时候,较多的时候我们会用command > file 2>&1 这样的写法。

    2,这样写还有一个好处就是,如果后面没有任何重定向,那么该条crond会给系统的root用户发邮件,如果你执行频繁或者输入内容比较多的时候,就要注意了,你的磁盘空间很快会被塞满。
相关阅读 更多 +
排行榜 更多 +
发条总动员免费

发条总动员免费

飞行射击 下载
消消乐海滨假日无限风车币正式版

消消乐海滨假日无限风车币正式版

休闲益智 下载
海滨消消乐qq微信应用宝版本

海滨消消乐qq微信应用宝版本

休闲益智 下载