Answers:
是的,接受和丢弃所有输入,但是它们的输出不同:
/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
用于创建虚拟文件或交换。
另请访问:
mmap
ping /dev/zero
with MAP_PRIVATE
是获取匿名内存映射的“便携式”方法(在缺少诸如扩展名的情况下MAP_ANON
)。
/dev/null
产生输出:它立即发出EOF信号。
rm -f /dev/zero ; echo -n 111111111111 > /dev/zero
*逃跑*