【问题标题】:What does "/dev/null" mean at the end of shell commandsshell命令末尾的“/dev/null”是什么意思
【发布时间】:2012-11-16 00:26:11
【问题描述】:

以下命令有什么区别?

ssh myhostname "command1; command2;...commandn;" 2>/dev/null
ssh myhostname "command1; command2;...commandn;" 
  1. 2> 是什么意思?

  2. /dev/null 是什么意思?我在某处读到命令的结果将写入文件/dev/null 而不是控制台!这样对吗?文件名是null 对我来说似乎很奇怪!

【问题讨论】:

  • 1. man bash 是一个有趣的读物。 2./dev/null是一个特殊的文件,充当黑洞;它不占用任何磁盘空间,因为放入其中的所有内容实际上都被丢弃了。

标签: linux shell


【解决方案1】:

2> 表示“将标准错误重定向”到给定文件。

/dev/null 是空文件。写入其中的任何内容都会被丢弃。

它们合在一起的意思是“丢弃任何错误消息”。

【讨论】:

    【解决方案2】:

    1 是标准输出。 2 是标准错误。

    然后有时你会找到2>&1,这意味着将stderr 重定向到stdout。

    【讨论】:

      【解决方案3】:

      /dev/null 本质上意味着“进入虚空”,被丢弃。您提到的2 指的是错误输出,它应该被定向到哪里。

      【讨论】:

        【解决方案4】:

        2> 表示向某物发送标准错误

        /dev/null 表示一个 bin

        【讨论】:

        • 重定向不是管道。
        【解决方案5】:

        1) 将标准错误中的所有内容通过管道传输到 /dev/null(因此忽略它并且不显示它)

        2) Dev null 只是指向无处,将任何东西通过管道传递给它,然后它就消失了。

        【讨论】:

        • 还有其他东西存储在 /dev/ 中,例如指向文件系统的指针(设备,即 /dev/sda)和 /dev/random 之类的东西,您可以从中读取以获取随机数据。
        • 不涉及管道。重定向不是管道。
        猜你喜欢
        • 1970-01-01
        • 2012-10-31
        • 1970-01-01
        • 2012-05-07
        • 2017-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多