Refer to https://unix.stackexchange.com/questions/254384/difference-between-dev-null-and-dev-zero
https://en.wikipedia.org/wiki//dev/zero
Yes, both accept and discard all input, but their output is not the same:
/dev/nullproduces no output./dev/zeroproduces a continuous stream of NULL (zero value) bytes.
You can see the difference by executing cat /dev/null and cat /dev/zero.
-
Try
cat /dev/null > fileand you will find an emptyfile. -
Now try
cat /dev/zero > file, while watching the size of the file (watch -n 1 du -h file) continuously increase. This is because reading from/dev/zerogives an endless stream of\0(null) characters.
Use dd to visualize the difference more appropriately:
$ 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 is used to create dummy files or swap.

本文详细对比了Linux系统中/dev/null和/dev/zero的功能差异。/dev/null作为黑洞设备,会丢弃所有输入;而/dev/zero则产生无限的空字节流,常用于创建空白文件或交换空间。通过cat和dd命令演示了两者的具体用法及输出区别。

被折叠的 条评论
为什么被折叠?



