删除如果不正确的话会破坏操作系统,但是这种情况还很容易发生,那么这个命令为什么还需要学习执行呢?在经过寻找之后我看到了Ben N的回答:以root身份登录或使用sudo,实际上是在对机器说:“我知道我在做什么。”防止人们做出可疑事情通常也会阻止他们做出聪明的事情。
此外,还有一个非常好的理由允许用户对根目录进行操作:彻底删除操作系统和文件系统以使计算机退役。(危险!在某些UEFI系统上,rm -rf / 也可能会损害物理机器。)
显然,人们不小心执行了这个命令,以至于增加了一个安全功能。rm -rf /在大多数系统上什么也不做,还提供了-no-preserve-root,并且你无法偶然输入。这也有助于防范写得不好但是意图良好的shell脚本。
意思就是如果没有指定–no-preserve-root这个参数,GNU rm 将拒绝执行这个命令,并且只输入rm -rf /也并不会执行删除根目录下文件。试验如下:
执行了rm -rf /*的结果如下,正在疯狂的删除系统文件:
但是过了一会没有反应了,按下Ctrl + C停止,页面如下,还是可以出现输入框:
虽然一些命令无法使用,但是到可以随意切换目录:
这就意味着有些系统文件还是删不掉的,执行一些相关命令看样子还是可以执行的,所以正如Ben N所说,当你使用root用户登录,或者使用sudo使用这条命令时 ,就在对系统表示“我知道我能做什么,我很清楚自己做的事情意味着什么”或者大家也可以这样认为Linux在设计这条危险的命令时,并没有屏蔽,是因为在我想让我的电脑退役时,删除电脑的文件。
所以在一般使用Linux是,一般不要使用权限过大的用户,对于一些常需要操作的目录大家可以使用root用户设置权限为777,或者是将你常用的用户加入root用户组等等,这样也方便操作,也能防止一些初学者的误操作导致系统崩溃等。
上一个教程:在Linux中误删文件,你知道怎么恢复吗?
下一个教程:关于增量删除和海量删除!