我没有在Ubuntu上尝试过该命令(出于明显的原因),所以我不确定Ubuntu是否允许执行。但是它以删除所有内容而闻名。出于好奇,/bin
删除内核和后会发生什么?如何rm
维护运行时堆栈?如何rm
管理与文件系统的通信并完成删除?它如何与硬件通信?
/bin/rm
删除都没关系。它只运行一次,到那时它全部都已加载到内存中,其他所有将删除内容继续发送到文件系统和磁盘所需的条件也是如此。
补充工具栏/更新:根据David Hoelzer的回答(并在评论中提到),/bin/rm
用于指向的硬链接的inode会一直保持到rm
完成为止(因为Linux处于打开状态),但是这一事实无关紧要;磁盘的状态根本不重要。
二进制文件在运行之前已加载到内存中。即使您可以手动销毁rm
磁盘数据,它也不会影响或阻止删除操作的完成(假设您不会使磁盘不可用)。
无论如何,这也是为什么您可以删除当前内核的软件包而不会导致计算机崩溃的原因。只要您安装其他版本,它就可以启动。
同样,这是有效的,因为rm
只被调用了一次。以下内容在死亡后将失败,/bin/rm
因为它为每个文件名调用一次:
find / -exec rm {} \;
这就是说,find / -exec rm -rf {} +
和find / -print0 | xargs -0 rm -rf
也都可能失败,因为它们都具有参数的限制,这意味着他们不仅会被再次调用之前删除一些文件。在此过程中的某个时刻,它/bin/rm
可能在删除其余文件之前过期(并被释放)。虽然不能保证。如果/bin/
输入的是最后一个目录,则这些方法可以使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句