如果我在 WSL 中执行 sudo rm -rf /mnt/c/* 会怎样?

mon*_*tar 10 windows linux rm windows-subsystem-for-linux

sudo rm -rf /mnt/c/*只是出于好奇,在 WSL(适用于 Linux 的 Windows 子系统)中运行后会发生什么?它会删除我计算机中的整个 C 驱动器吗?WSL 会继续工作吗?如果sudo rm -rf /*,它会删除该/mnt文件夹吗?

Dan*_*l B 15

在 WSL 中成为 root 并不意味着您就成为 Windows 管理员。所以不,它不会删除整个 C:。但是,它可能会删除足够多的共享文件和/或用户配置文件中的内容,从而造成相当大的损害。您仍然可以在那里删除很多内容。

\n

它可能会导致您无法再登录或您安装的某些软件失败。

\n

Here\xe2\x80\x99s 受保护文件会发生什么:

\n
daniel@db-d-18:/mnt/c/Program Files/Firefox Developer Edition$ sudo rm install.log\nrm: cannot remove 'install.log': Permission denied\n
Run Code Online (Sandbox Code Playgroud)\n
\n

当然,您完全可以通过这种方式破坏您的 WSL 发行版。

\n


Not*_*1ds 10

运行sudo rm -rf /mnt/c/*wsl后会发生什么

是否sudo rm -rf /*会删除/mnt文件夹

两者都是类似的场景。

不,它不会删除整个驱动器,但它仍然会造成严重损坏(正如@DanielB也指出的那样)。在 Ask Ubuntu 上看到(并遗憾)这个问题,用户不小心做了你所要求的事情。

我开始从 Windows 收到各种其他错误

现在,即使在 Windows 中,一切都工作得很奇怪……太多的东西已经损坏了。

虽然 ( ) 中的文件C:\Windows不会被删除,但%userprofile%( C:\Users\<youruser>) 中的文件不会被删除,包括:

  • 大多数已安装应用程序的本地和远程设置,包括:

    • 您的开始菜单 ( %appdata%\Microsoft\Windows\Start Menu)
    • 您的浏览器设置、cookie、保存的密码等。
    • 讽刺的是,您从商店安装的 WSL 发行版 ( %localappdata%\Packages\<distro_package\)
    • 你的桌面。
    • 等等等等等等
  • 文档、图片、下载、音乐等

  • 文件存储在 OneDrive 上,通常位于%userprofile%\OneDrive. 请注意,与通过 WSL 删除的普通文件不同,此处删除的文件进入 OneDrive 回收站。

简而言之,这将是灾难性的。Windows 应该仍然可以启动,但您需要创建一个新用户才能恢复。

但是,如果您在 UAC 提升的(管理)控制台中运行 WSL,那么损坏会更严重。它仍然无法删除正在使用的文件,但它会擦除足够的/mnt/c/Windows/C:\Windows使其无法启动。