' sudo rm -rf /* ' 是做什么的?

' sudo rm -rf /* ' 是做什么的?

我在 上运行了这个命令Fedora,无论如何我都想卸载它,所以我决定检查一下这个命令:sudo rm -rf /*只是为了好玩。当我运行这个命令时,GUI 就停止工作,并且开始出现黑色斑点,我认为工作已经完成,并强制关闭。 [顺便说一句,我正在多重启动 Windows 10、Linux Mint、Garuda Linux 和 Fedora]

当我重新启动时,我期待 Garuda Linux 的 Grub 出现,但什么也没发生,并且出现了 DELL 的支持助手。然后我从BIOS得知EFI分区被完全删除,这是有道理的,因为它是/boot/efiFedora中的目录。然后我必须完成所有恢复工作才能让我的操作系统再次启动。

我担心,就像挂载到 Fedora 的 EFI 分区被完全删除一样,我所有的 Data 分区也会被该命令删除。但当我把一切都做好后检查出来时,一切都被保存了。甚至 Fedora 分区也使用了一些空间。

然后我从 Garuda Linux 的 g-parted 格式化了 Fedora 分区。

现在我想知道这个命令到底做了什么:sudo rm -rf /*真的做了什么,只是为了检查我没有丢失任何其他数据。

答案1

sudo rm -rf /*-r意味着递归地删除目录及其内容,并-f忽略不存在的文件和参数,并且从不提示确认,/*只是扩展到 中的所有内容/)删除中的所有内容/,正如您发现的/boot/efi那样,还包括已安装的文件系统。部分数据未删除的原因可能是:

  1. 其他发行版/操作系统中的分区未安装,rm无法从未安装的设备/文件系统中删除数据。
  2. 它们被安装为只读。
  3. 正如卡米尔指出的那样,您可以通过强制关闭及时停止递归删除,以使某些数据得以保存。

至于为什么Fedora有一些空间被占用,就看你怎么查了。即使空文件系统也使用了一些空间(元数据、文件系统保留等),例如 GParted 将显示这一点,但这并不一定意味着某些数据幸存下来。

答案2

过于简化: sudo rm -rf /* 将从操作系统中删除所有重要文件以启动,正常工作。与Windows中删除system32基本相同。

相关内容