良许Linux教程网 干货合集 Linux 中如何将输出和错误重定向到 /dev/null

Linux 中如何将输出和错误重定向到 /dev/null

我们在脚本中使用了某些 Linux 命令,并且不希望它在终端屏幕上显示任何输出或错误。对于这种情况,我们可以利用输出和错误重定向,将它们发送到 /dev/null。

img

假如有这样一个场景:我们运行了一个 Linux 命令,它有很多的输出信息,但是我们并不需要这些输出信息。

或者,我们在脚本中使用了某些 Linux 命令,并且不希望它在终端屏幕上显示任何输出或错误。

对于这种情况,我们可以利用输出和错误重定向,将它们发送到 /dev/null。

将标准输出发送到 /dev/null 的命令如下:

command 1> /dev/null1.

将错误发送到 /dev/null 的命令如下:

command 2> /dev/null1.

将输出和错误发送到 /dev/null:

command 2>&1 /dev/null1.

/dev/null 可以被认为是 Linux 文件系统中的一个黑洞,无论你往里面仍什么,都不会看到有任何回应。

下面我们来详细了解一下。

将输出重定向到 /dev/null

我们在终端中输入一个命令,可以被认为就是我们的输入(假设我们执行了 sudo apt update)。

这样,我们给了我们的系统输入,然后系统会显示正在更新的存储库以及现在可以更新的包等过程信息,如下图所示:

img
img

也就是说,系统给出的输出信息,显示的是它对命令的操作。下面是每个标准数据流的编号:

  • 标准输入(stdin)指定为 0;
  • 标准输出(stdout)为 1;
  • 标准错误(stderr)为 2。

所以,将标准输出重定向到 /dev/null 的命令为:

command 1> /dev/null1.

比如,我们使用 find 命令,该命令会显示一部分错误的输出信息,然后我将标准输出重定向到 /dev/null,但是对错误信息不做任何处理,仍让其正常显示,如下图所示:

img
img

从上图可以看到,当我没有将输出重定向时,其显示的输出信息为1807行。然后当重定向输出时,它只显示错误信息。

将错误重定向到 /dev/null

我们前文提到了,错误信息的数据流编号为 2,所以只需将上面命令的数据流编号改为 2,就可以将错误信息重定向到 /dev/null。

command 2> /dev/null1.

上述命令中的大于号 > 用于重定向数据流,数字 2 表示在标准错误时将其重定向。

比如,我们在 Ubuntu 上运行命令 sudo dnf updte,当然会·报错。然后在第二个窗口中,将错误进行重定向,如下图所示:

img

将输出和错误均重定向到 /dev/null 下面我们来看一下如何将输出和错误都重定向到 /dev/null。该任务的基本语法如下:

command 1> /dev/null 2> /dev/null1.

或者也可以使用精简的版本:

command 2>&1 /dev/null1.

作为演示,我们使用 find 命令在 etc 目录中查找文件。在这个路径下访问某些子目录需要有 sudo 权限才可以,如果没有使用 sudo,就会抛出一个错误,如下图所示:

img

以上就是本次分享全部内容。如果想了解更多关于重定向数据流的信息,可以阅读我们之前的文章:Linux中的输入、输出和错误重定向

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部