/dev/null 文件实际上有固定大小吗?

Cod*_*ody 23 filesystem files

我刚刚发现这/dev/null是一个文件而不是目录。

我只是想知道它是否有实际的文件大小。

Byt*_*der 35

/dev/null不是真正的文件。这是一个字符设备

$ ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 Apr 10 09:53 /dev/null
Run Code Online (Sandbox Code Playgroud)

c权限字符串 ( crw-rw-rw-)的第一个字母表示这一点。对于常规文件,它将是一个-

简单来说:/dev/null不是文件,而是映射到文件系统中此路径的虚拟设备,它的唯一目的是吞噬和消失数据——就像一个黑洞。
它也可以用作输入,然后它就像一个空文件(大小为 0)并立即返回一个 EOF(文件结束)。

因此,您不能真正说它/dev/null具有特定的文件大小,因为它不是任何存储介质上的常规文件。

  • @JonathonWisnoski,不 - 它在输入时表现得像一个零大小的文件,因此第一次读取它会报告该文件处于 EOF。 (7认同)
  • @JonathonWisnoski 查看 /dev/zero 。 (3认同)

Flo*_*sch 16

/dev/null是一种称为“设备文件”的特殊文件

设备文件充当某些内核功能的接口。它们只占用目录条目(“ inode ”)所需的空间,但没有任何实际内容,也没有实际文件大小。

其他设备文件例如/dev/sda(通常是 HDD 或 SSD)、/dev/zero(读取时生成零的文件)或/dev/random(读取时生成随机数据的文件)。实际上关于所有文件/dev/都是设备文件或指向设备文件的链接。

  • 就像任何其他文件一样,设备文件需要一个 inode 来存储所有者、权限、主要/次要编号和其他元数据。这取决于文件系统如何以及在何处存储此 inode(您可以使用 `mknod` 在您想要的任何位置创建设备文件)。对于像`/dev/`这样的虚拟文件系统,inode 不占用磁盘空间而是一些内存。 (2认同)