/dev/zero

/dev/zero类UNIX系统中是一个特殊的设备文件/dev/zero在被读取时会提供无限的空字符(ASCII NUL, 0x00)。它的典型用法包括用它提供的字符流来覆盖信息,以及产生一个特定大小的空白文件。BSD就是通过mmap/dev/zero映射到虚地址空间实现共享内存的。使用mmap/dev/zero映射到一个虚拟的内存空间,这个操作的效果等同于使用一段匿名的内存(没有和任何文件相关)。

下面的方法可以用于清空sda1分区的数据:

# 请不要执行以下指令,除非你试图清除目标分区上的所有资料!
dd if=/dev/zero of=/dev/sda1

创建一个名为foobar、大小为1 MiB的文件,以ASCII码为“0”的字符填充:

dd if=/dev/zero of=foobar count=1024 bs=1024

/dev/null类似,/dev/zero也可以作为一个数据源或数据池,所有写往/dev/zero将返回成功,没有其他影响,/dev/null也是一样,但是作为数据池更常用。所有对/dev/zero的读操作,将返回请求数目的“NUL”字节。

参见

  • dd (Unix)
  • Unix哲学
  • 标准流
  • /dev/full
  • /dev/null
  • /dev/random
  • /dev