当尝试重定向到/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
用于创建虚拟文件或交换。
另请访问: