微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

可执行文件在linux上删除

作为超级用户,我在linux上执行了以下命令

rm rm

从而消除自己。 因为当进程正在执行时,其引用计数不为零,所以不能删除。 所以我感到困惑,为什么会这样呢?

我也尝试了chown 0000 chown 。

cp -r Dir1/ Dir2/

在上面的命令中,当我仅在复制过程中删除源目录时会发生什么?

“导出”命令是做什么的?

同时捕获两个不同端口上的networkingstream量

如何在Windows命令提示符中执行“字数统计”命令

如何让Java运行可执行应用程序?

目录中的最大数量的inode?

如何在linuxterminal上searchword

Emacs和Cygwin的

用docker exec执行两个命令

是否可以使用Linux命令从HTTP服务器读取前N个字节?

如何使“du”命令运行而不输出所有目录,如安静模式?

这与临时文件是一样的。

回想一下,创建一些临时文件的常用方法是打开(2)文件(保留其文件描述符),然后断开(2) (同时还有打开的文件描述符)。 然后,只要进程正在运行并且没有关闭(2) -d该文件描述符,文件的数据就会保留在文件系统中。

这是因为文件真的是inode – 不是目录中的文件名。 (目录包含将名称与inode关联的条目)。

内核管理一组“已使用”(或“已打开”)inode,该组包含进程执行的inode(实际上是像mmap(2)或execve(2)那样的某些地址映射所涉及的inode)

所以就在/bin/rm /bin/rm ,内核有一个对rm二进制的引用作为进程的可执行文件

当它处理unlink系统调用时,它暂时有两个引用(一个是正在执行的进程,另一个是通过/bin/rm来unlink内核实现)并将其减少为1。

当然,你应该避免输入/bin/rm /bin/rm但是你通常会有一些独立的shell如sash来修复你的系统。

在Windows上,“rm rm”可能是不可能的,因为你提到的引用计数。 然而在大多数* nix系统中,它是。 “rm”和“chmod”被加载到内存中,只有这样才会执行指定的命令行。 另一个例子:在一个窗口中编辑一个文件,并在编辑该文件时,在另一个窗口中删除它。 无论参考计数如何,大多数* nix系统也应该可以这样做。

你不能用rm删除一个目录,直到它为空。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐