我正在将 550MB 文件读入 /dev/null 并得到
dd: writing '/dev/null': No space left on device
我很惊讶。我认为 /dev/null 是一个黑洞,你可以在其中发送任意数量的数据(因为它是一个虚拟文件系统)。
是的,当我收到此错误时,我的磁盘几乎已满。除了从磁盘中删除内容之外,我还能做什么?
ls -l /dev/null
-rw-r--r-- 1 root root 0 July 7 21:58 /dev/null
代替
crw-rw-rw- 1 root root 1, 3 July 7 02:58 /dev/null
我正在使用的命令:
time sh -c "dd if=$filename of=/dev/null"
答案1
/dev/null
是一个特殊文件,类型为字符设备。该字符设备的驱动程序会忽略您尝试写入该设备的任何内容,并且写入始终会成功。如果写入/dev/null
失败,则意味着您已设法删除正确的文件/dev/null
并将其替换为常规文件。您可能不小心删除了/dev/null
;那么下一个… >/dev/null
会将其重新创建为常规文件。
运行ls -l /dev/null
并检查该行是否类似于
crw-rw-rw- 1 root root 1, 3 Sep 13 2011 /dev/null
对于字符设备,它必须以crw-rw-rw-
:开头,并且允许每个人读取和写入的权限。c
该文件应该由 root 拥有,尽管它不是很重要。所有者和组后面的两个数字标识设备(主设备号和次设备号)。上面我展示了Linux下的值;不同的 UNIX 变体具有不同的值。该日期通常是系统安装日期或上次重新启动的日期,这并不重要。
如果您需要重新创建该文件,某些系统会MAKEDEV
在 root 的 PATH 或/dev
.运行cd /dev; ./MAKEDEV std
或类似的东西来重新创建标准基本设备,例如/dev/null
.或者手动创建设备,并提供正确的设备编号;在Linux上,那就是
mknod -m 666 /dev/null c 1 3