shell 命令 rm -rf // 中的目录 `//` 究竟是做什么的?

What does the directory `//` in the shell command `rm -rf //` do, precisely?

我在尝试从我的项目目录中删除名为 \ 的 er运行t 目录时不小心 运行 这个命令。我知道这是个错误。它很快就开始访问许可文件,此时我意识到我的错误,所以我 ctrl-c 离开了那里。我备份了所有重要的项目,但该命令终止了我的开发环境。在任何地方打开 vim 都会崩溃并抛出段错误,如下所示:

Vim: Caught deadly signal SEGV

Error detected while processing function <SNR>130_PollServerReady[7]..<SNR>130_Pyeval:Vim: Finished.

line    4:
Exception MemoryError: MemoryError() in <module 'threading' from '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.pyc'> ignored
[1]    6921 segmentation fault  vim ~/dotfiles/.vimrc

我对自己和任何犯下类似错误的人的主要问题是:

什么,双反斜杠 // 究竟指向什么?首先删除什么?是否有一个合乎逻辑的第一个开始替换 util、配置、$PATH 东西等的地方?

希望这对 SO 来说足够清晰和具体。

cd // 将带您到根目录 /.

rm performs a depth-first search,遍历 xfts_open 调用的结果。 find 也以这种方式遍历文件系统。

find / 将列出存在的文件。然后,您可以使用您对预期结构的了解来反转缺失的列表。

或者,您可以使用 debugfs 来帮助您获取文件。

这假设这些命令确实有效。实际上,您的系统可能已被冲洗干净。删除 / 中的内容会损坏您的计算机。从备份恢复可能是 return 恢复功能系统的最简单方法。您还可以尝试各种实用程序来从您的硬盘恢复最近删除的文件;如果你打算这样做,你应该停止使用你的电脑,因为你的硬盘驱动器目前将许多区域视为空闲 space(因为你告诉它)最近在 / 中保存文件并且它可以启动写信给那些地区。

在 Linux 中,我相信其他 *nix 风格,路径中的额外斜线会被简单地忽略。因此,a//ba/b 相同,/// 相同。我希望你没有 运行 作为超级用户...