如果从 Cygwin 运行,“rm -rf /”是否会从 Windows 中删除所有内容?

JDN*_*JDN 5 linux cygwin bash

所以……我做了坏事。在 Cygwin 中,我编写了一个 bash 脚本,它接收两个目录并将其中一个目录的内容复制到另一个目录中。首先,它调用“rm -rf”来删除第二个目录的内容。我不小心在没有提供第二个参数的情况下运行了脚本,看起来 Cygwin 将其视为可怕的“rm -rf /”。

我不确定损坏是什么,我正在尝试对其进行评估。因为它在我停止之前正在运行,所以我看到了很多“权限被拒绝”的消息。

最明显的损坏是我的 C:\cygwin64 文件夹被破坏了。里面只剩下几个空目录。我相信可能有一些按字母顺序排列在 cygwin64 之上的目录被删除,因为我不记得它是列表中的最高目录,现在是。

我的电脑运行 100% 正常,我还没有遇到任何奇怪的事情。我只想知道是否有人对 Cygwin 上的“rm -rf /”有任何经验,以及这是否会像在 Linux 上一样破坏您的整个驱动器。

部分难题在于 Cygwin 的根目录位于 c 驱动器下方,但它包含对“cygdrive”中 c 驱动器的引用。我想知道“rm -rf /”是否真的会彻底删除“/cygdrive”的所有内容,或者是否以某种方式受到保护。

编辑:附带说明,有人知道为什么“rm -rf”与“rm -rf /”相同。我清楚地记得没有提供路径并将该参数留空,所以我不知道为什么它在根目录上调用 rm 。

JDN*_*JDN 10

编辑:命令完成,然后我重新启动了虚拟机,所以我添加了更多照片。还更改了我的答案,以包括机器并未完全损坏的事实。

编辑 2:我还有 VM。如果您出于好奇想要我尝试任何东西,请在评论中告诉我。

编辑 3:我决定多做一些实验。我恢复到我在运行命令之前拍摄的快照,我在上面放了一个文件C:\cygwin夹,在下面放了一个文件夹。然后我运行了命令并且ctrl-c很快就完成了。cygwin 文件夹仍然存在(里面大部分是空的),但它上面的文件夹被删除了。它下面的用户生成的文件夹也完好无损。然后我恢复了状态并再次运行命令,这次在ctrl-c. 现在它删除了 cygwin 上面的文件夹、cygwin 本身和下面的文件夹。

当我在现实生活中的计算机上运行它时,该C:\cygwin64文件夹完好无损,这意味着它下面的所有内容按字母顺序排列都是安全的。这让我现在放心了,现在可以肯定地知道唯一被炸毁的文件夹是上面的文件夹,这些C:\cygwin64文件夹通常只是临时文件夹或其他一些非必要的文件夹。

TLDR: 不要跑步rm -rf /*rm -rf /永远。

TLDR2: 我创建了一个 Windows 10 VM,安装了 Cygwin,然后运行了rm -rf /*. VM 搞砸了。回答我自己的问题:是的,它会删除它有权访问您硬盘驱动器上的所有内容。如果我没有像在我的真机上发生这种情况时那样快地取消命令,它就会删除我所有的个人文件。不过,通用操作系统仍然完好无损。

所以,我决定创建一个 Windows 10 VM 并从头开始尝试。这就是发生的事情。rm -rf /出于安全原因,Cygwin 不允许您这样做(有一个覆盖选项)……但rm -rf /*显然完全没问题,没有警告。

我意识到在我的原始脚本中,我删除了提供的目录中的所有文件,所以我使用了rm -rf $1/*, 所以如果$1是空的......可怕的破坏你的硬盘驱动器命令被执行,Cygwin 甚至没有警告你!

即将点击进入...

在此处输入图片说明

cygwin64 是第一个遭到破坏的

在此处输入图片说明

Windows 资源管理器链接消失了

在此处输入图片说明

开始菜单还在

在此处输入图片说明

有桌面图像!

在此处输入图片说明

通知中心还是可以的

在此处输入图片说明

小娜也是!

在此处输入图片说明

回收站坏了,但现在我可以访问 Windows 资源管理器了!

在此处输入图片说明

C:驱动器内容,这里没有太大变化

在此处输入图片说明

通用用户界面仍然工作正常

在此处输入图片说明

开始菜单不再响应

在此处输入图片说明

音乐生活!它是唯一的图书馆

在此处输入图片说明

命令已完成!

在此处输入图片说明

C 中没有太多新内容:

在此处输入图片说明

如果从可执行文件启动,应用程序仍然可以工作,应用程序数据仍然完整

在此处输入图片说明

我重新启动了机器。启动和登录没有问题。如果您单击它们的直接可执行文件,程序仍然可以工作。仍然可以访问互联网。很难评估永久性损坏。开始还是打不开。

在此处输入图片说明