我一直认为/dev/null
是一个黑洞,我发送到那里的所有数据都不会被回显。但是这个定义有问题。根据维基百科:
/dev/null 是一个特殊的文件,而不是目录,因此不能使用 Unix mv 命令将文件移动到其中。
那么按照这个定义,为什么我可以在那里mv
塞东西?例如,我可以轻松做到:
# touch oi
# mv oi /dev/null
Run Code Online (Sandbox Code Playgroud)
那里发生什么事了?
如果您尝试在普通用户(不是 root)下将任何内容移动到 /dev/null,您将收到Permission denied
错误,因为mv something /dev/null
实际上是在尝试删除/dev/null
然后移动something
到/dev/null
原来的位置。
如果你会尝试做下的根,它会删除/dev/null
(然后将你所提供的文件中它的地位)!您可以通过重新启动或在 root shell(在 Linux 上)中键入以下内容来恢复它:mknod /dev/null c 1 3; chmod a+w /dev/null
或在 BSD 中:mknod /dev/null c 3 2; chmod a+w /dev/null
.
当你这样做时:
# mv oi /dev/null
Run Code Online (Sandbox Code Playgroud)
您实际上正在做以下等效的操作
# rm /dev/null
# mv oi /dev/null
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4398 次 |
最近记录: |