/dev/zero 的目的?

tkb*_*kbx 51 filesystems

我尝试过cat /dev/zero,但似乎没有任何作用。我用谷歌搜索/dev/zero,它说它基本上是一个无限大小的空白文件。是否cat打印无限数量的不存在的字符?这是如何运作的?如果它是 0 字节,它如何提供无限数据?如果可以简单地创建一个空白文件,该文件有什么用途?

Kon*_*rak 58

/dev/zero是一个特殊文件(在这种情况下,是一个伪设备),它提供了无穷无尽的空字符流(所以是十六进制 0x00)?这就是为什么您cat没有输出任何内容(但尝试通过od(八进制转储)运行它)。

“无限大小的空白文件”并非 100% 正确:它不是常规文件,而是特殊文件(更像是“流”或生成器)。您可以根据需要从中读取尽可能多的内容,例如使用dd(like dd if=/dev/zero of=yourfile count=1024 bs=1024)。

它不是真正的空白文件,也不用于创建空白文件:它用于创建仅填充零的文件或内存页。你也可以给它写信,让它表现得像一个天坑(/dev/null尽管它更受欢迎的兄弟更常用于这个)。

  • @tkbx 尝试`dd`一个分区,您可能希望将所有空白空间填充为 0 而不是随机以稍后获得较小的压缩文件。 (12认同)
  • 例如,删除之前的内容。或者传输的时候。 (6认同)
  • 我没有读过 `srm` 手册或源代码,但大多数“安全擦除器”更喜欢写入(伪)随机数据而不是将驱动器归零,因为一次归零不够安全(某些三个-letter 机构仍然可以扣除归零硬盘的原始内容,因为单个位不是 100% 真正的 1 或 0,而只是“主要是 1”或“主要是 0”。将其与您可以将“全部向左”或“一直向右”,但通常只需摆动到另一边就足够了。 (4认同)