Linux 中的 /dev/null 是什么?Linux 中的 /dev/null 是什么?Linux 中的 /dev/null 是什么?Linux 中的 /dev/null 是什么?
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

Linux 中的 /dev/null 是什么?

发表 admin at 2025年2月28日
类别
未分类
标签

/dev/null 相当于 Linux 系统的黑洞。它是什么以及为什么使用它?

如果您已经使用 Linux 用户一段时间,您一定遇到过 /dev/null 这个术语,至少在 memes 中是这样。

/dev 是安装大多数外围设备(例如磁盘驱动器)的目录。

但这个 /dev/null 文件由于其特性而很特殊,我将在本指南中讨论这一点。

/dev/null 是什么?

它是一个虚拟文件,具有独特的处理文件的方式。 /dev/null 上写入的任何内容都会消失并且无法恢复。一个命令应该产生巨大的输出?将其重定向到 /dev/null,并且在系统中的任何位置都看不到输出,甚至在 /tmp 中也看不到。这就是为什么它被称为Linux的黑洞。

让我在这里分享一个简单的例子。

在这里,我将标准输出重定向到 /dev/null:

echo "Linuxhandbook" > /dev/null

正如你所看到的,当我使用 cat 命令打印 /dev/null 的内容时,它什么也没显示。

现在,让我们深入了解 /dev/null 的文件属性。

/dev/null 的文件属性

为了更好的可读性,我将使用 stat 命令来了解文件系统的状态。

stat /dev/null

它解释了很多。

  • 是空的

  • 创建日期与我上次启动的日期相同

  • 文件的UID和GID都是0

  • 并且每个用户都可以在 /dev/null 上读写

  • 它是一个字符设备文件,这意味着它将像未缓冲的设备一样运行并且可以接受数据流

因此,您可以将任意数量的文件发送到 /dev/null,它不会被填满或不会增加大小。

?
/dev/null 作为一个文件,因此,您无法使用 mv 命令删除或转储包含 dev/null 的目录。

在 Linux 中使用 /dev/null

正如我之前提到的,它是一个黑洞,无论被送到那里,都无法恢复。

/dev/null 最常见的用途之一是将命令的错误或输出重定向到此文件。

想象一个命令运行一段时间,它会生成标准输出和错误。如果您只想阅读错误,可以将输出重定向到 /dev/null,这样它就只显示错误。

command 1> /dev/null

同样,如果您只想查看标准输出,而不是错误,则可以将错误重定向到 /dev/null。

command 2> /dev/null

您可以将标准输出和错误发送到 /dev/null。这将运行该命令,但不会在屏幕上显示任何内容。

command 2>&1 /dev/null

如果所有这些 2>&1 内容对您来说看起来像代数,我强烈建议您阅读本文中有关 stdout、stdin 和 stderr 重定向的内容。

让我举一个愚蠢但简单的例子。

在这里,我使用了两个命令 ls 和 apt update,其中更新存储库的命令 (apt update) 将需要超级用户权限。

在理想情况下,它应该得到以下输出:

ls && apt update

现在,我将错误部分重定向到/dev/null:

ls && apt update 2> /dev/null

正如您所看到的,输出的错误部分不再显示。

还有更多开发文件...

/dev/null 不是唯一的特殊设备文件。 /dev/zero 用于创建填充零的文件,或者 /dev/random 用于生成随机数。

在这篇文章的结尾,我将与您分享一个很酷的 /dev/null meme ?

©2015-2025 Norria support@norria.com