/dev/null 和 /dev/zero 之间的区别

/dev/null 和 /dev/zero 之间的区别

当尝试重定向到/dev/null和 时/dev/zero,输出将被丢弃。似乎既/dev/null接受/dev/zero又丢弃所有输入。那么,/dev/null和之间有什么区别/dev/zero

答案1

是的,两者都接受和丢弃所有输入,但它们的输出不一样:

  • /dev/null产生无输出
  • /dev/zero产生连续的 NULL(零值)字节流

cat /dev/null您可以通过执行和 来查看差异cat /dev/zero

  • 尝试一下cat /dev/null > file,你会发现一个空的file

  • 现在尝试cat /dev/zero > file,同时观察文件 ( ) 的大小watch -n 1 du -h file不断增加。这是因为读取给出了无穷无尽的(空)字符/dev/zero流。\0

使用dd更恰当地可视化差异:

$ dd if=/dev/null of=file count=10
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000276193 s, 0.0 kB/s

$ dd if=/dev/zero of=file count=10
10+0 records in
10+0 records out
5120 bytes (5.1 kB) copied, 0.00090775 s, 5.6 MB/s

/dev/zero用于创建虚拟文件或交换。

另请访问:

相关内容