求助2>&1 < /dev/null的含义

iceorigin 2012-10-21 06:23:09
bzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " -f1,6-
这一行命令会输出bzip2的版本信息,我想请问一下 2>&1 < /dev/null是什么意思呢?2>&1是把标准错误重定向到标准输出,但是< /dev/null是什么意思呢?我已经Google了但是没有找到结果,希望哪位大神能帮我解答一下,先谢谢了。
...全文
538 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
root_jli 2012-10-22
  • 打赏
  • 举报
回复
2>&1 将标准错误转向标准输出
< /dev/null 将/dev/null转向为bzip2 --version命令的输入

bzip2 --version < /dev/null
/dev/null 本身是空设备,将空设备中的东西转向为命令bzip2 --version的输入,本身无意义
因为转向输入只对需要输入的命令起作用

| head -n1 | cut -d" " -f1,6- 读取标准输出的第一行,取出以空格分割的第一和第6个以后的参数
Franklin 2012-10-22
  • 打赏
  • 举报
回复
< /dev/null是什么意思呢?
1 /dev/null 是个垃圾箱
就是你不要的东西丢进去,这里bzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " -f1,6-
意思就是bzip2 --version 的输出,除了符合| head -n1 | cut -d" " -f1,6-的输出
剩下来的都丢进/dev/null,然后,再给标准输出1
所以你可以只看到版本信息的第一行。。。对吧?

fdl19881 2012-10-21
  • 打赏
  • 举报
回复
2>&1是你说的意思,因为|管道只能将前一个程序的标准输出定向到后一个程序的标准输入。2>&1就是说当bzip2出现错误时,也将错误信息传到下一个程序。
</dev/null就是把垃圾桶当作bzip2的标准输入。/dev/null当输入为无。read一下直接返回0

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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