我在 上运行了这个命令Fedora
,无论如何我都想卸载它,所以我决定检查一下这个命令:sudo rm -rf /*
只是为了好玩。当我运行这个命令时,GUI 就停止工作,并且开始出现黑色斑点,我认为工作已经完成,并强制关闭。 [顺便说一句,我正在多重启动 Windows 10、Linux Mint、Garuda Linux 和 Fedora]
当我重新启动时,我期待 Garuda Linux 的 Grub 出现,但什么也没发生,并且出现了 DELL 的支持助手。然后我从BIOS得知EFI分区被完全删除,这是有道理的,因为它是/boot/efi
Fedora中的目录。然后我必须完成所有恢复工作才能让我的操作系统再次启动。
我担心,就像挂载到 Fedora 的 EFI 分区被完全删除一样,我所有的 Data 分区也会被该命令删除。但当我把一切都做好后检查出来时,一切都被保存了。甚至 Fedora 分区也使用了一些空间。
然后我从 Garuda Linux 的 g-parted 格式化了 Fedora 分区。
现在我想知道这个命令到底做了什么:sudo rm -rf /*
真的做了什么,只是为了检查我没有丢失任何其他数据。
答案1
sudo rm -rf /*
(-r
意味着递归地删除目录及其内容,并-f
忽略不存在的文件和参数,并且从不提示确认,/*
只是扩展到 中的所有内容/
)删除中的所有内容/
,正如您发现的/boot/efi
那样,还包括已安装的文件系统。部分数据未删除的原因可能是:
- 其他发行版/操作系统中的分区未安装,
rm
无法从未安装的设备/文件系统中删除数据。 - 它们被安装为只读。
- 正如卡米尔指出的那样,您可以通过强制关闭及时停止递归删除,以使某些数据得以保存。
至于为什么Fedora有一些空间被占用,就看你怎么查了。即使空文件系统也使用了一些空间(元数据、文件系统保留等),例如 GParted 将显示这一点,但这并不一定意味着某些数据幸存下来。
答案2
过于简化: sudo rm -rf /* 将从操作系统中删除所有重要文件以启动,正常工作。与Windows中删除system32基本相同。