是否可以删除根目录?

ger*_*rit 10 unix rm

我在文档中注意到rm通过rm --help以下标志获得:

--no-preserve-root  do not treat `/' specially
Run Code Online (Sandbox Code Playgroud)

这是什么意思?除了内容之外,实际上是否可以删除根目录?那会有什么后果?

use*_*686 22

您不能删除根目录本身。但是,可以使用rm的递归模式下删除所有该目录-臭名昭著的rm -rf /命令。

“保留根”模式停止rm递归操作根目录:

$ sudo rm -rf /
rm: it is dangerous to operate recursively on ‘/’
rm: use --no-preserve-root to override this failsafe
Run Code Online (Sandbox Code Playgroud)

--preserve-root选项于 2003年添加到 GNU rm(提交 9be74f6f125b2be),并在 2006 年成为默认行为(提交 aff5a4f2ab86f)。

有人说这是因为#ubuntu 中的恶作剧者不断告诉新手跑rm -rf /——很多人都这样做了。有人说这是因为太容易打错字了 rm -rf / tmp/junk。有人说是为了防止rm -rf $dir/$dir 为空时运行时发生意外。我们只知道,他被称为

无论哪种方式,它都是当今POSIX 要求的一部分。Solarisrm 也有类似的保护,就像OpenBSD 一样

  • 你真的敢打字吗? (6认同)
  • Linux 很便宜,旧电脑也很便宜。承认您已经在退役的系统上完成了这项工作,以了解如何快速创建磁盘空间。答案是肯定的。 (4认同)