不明白grep "lous" /etc/passwd>/dev/null 2>&1

dingwood 2010-03-26 04:01:35
如题,不明白上句的意思。
尤其是不明白大多数系统管理员称/ d e v / n u l l为比特池,什么个意思?
...全文
390 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoxiaotao1986 2012-07-02
  • 打赏
  • 举报
回复
是不是可以理解成&1默认的就是/dev/null,我是了下,如果没有前面的标准输出重定向的话,后边的错误输出重定向还是为显示到屏幕上的,也就是说&1是个变量,默认的被赋值成/dev/null。我不知道我的理解对不对。
xiaokang007 2010-03-27
  • 打赏
  • 举报
回复
可以 当做 垃圾 回收站 ,而且不需要 你 去 手动 清理
steptodream 2010-03-27
  • 打赏
  • 举报
回复
楼上的 如果你要解释 最好解释准确
2>&1
在shell里 这里的1和2准确的说是文件描述符 其实还有0 即:0 1 2 对应的是:STDIN STDOUT STDERR
也就是0表示输入 1表示屏幕输出 2表示错误输出 所以2>&1就是把标准出错重定向到标准输出
grep "lous" /etc/passwd>/dev/null 2>&1
首先是grep "lous" /etc/passwd>/dev/null 将标准输出重定向到/dev/null 然后2>&1把标准错误重定向到标准输出 也就是也被重定向到了/dev/null 那结果就是标准输出和标准错误都被重定向到了/dev/null

xiaokang007 2010-03-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 litinghai 的回复:]
如果没有2>&1,产生的错误信息存放哪里,内存?
又如果没有>/dev/null 2>&1,搜索的结果放哪
[/Quote]

1,输出重定向(>)操作在命令执行发生错误时,会将错误信息直接显示到屏幕,并不记录到文件中,没必要放在内存
2.标准输出与错误输出重定向(&>)可以将标准输出和错误输出信息一并重新定向到文件,屏幕上不会显示任何信息 ,如果没有 >/dev/null 2>&1 ,结果 就直接显示在屏幕上咯。 没搜到就什么都不显示, 都到了 就显示结果
steptodream 2010-03-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 litinghai 的回复:]

如果没有2>&1,产生的错误信息存放哪里,内存?
又如果没有>/dev/null 2>&1,搜索的结果放哪
[/Quote]
输出(显示)到屏幕(终端)
litinghai 2010-03-27
  • 打赏
  • 举报
回复
如果没有2>&1,产生的错误信息存放哪里,内存?
又如果没有>/dev/null 2>&1,搜索的结果放哪
xiaokang007 2010-03-27
  • 打赏
  • 举报
回复
steptodream 补充 的 是 ,受教
liucy1983 2010-03-26
  • 打赏
  • 举报
回复
这条命令就相当于放了一个不臭不响的屁,什么都没有增加,什么都影响
steptodream 2010-03-26
  • 打赏
  • 举报
回复
我习惯把/dev/null看成黑洞 只要把东西扔进去就没了

grep "lous" /etc/passwd>/dev/null 2>&1

在/etc/passwd查找是否包含字符串lous 并把标准输出和标准错误一起重定向到/dev/null

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧