linux的rm 删除的文件真的那么快删除完吗?

一般来说我们在linux服务器上面删除文件看起来是很快的,一个rm就把数据删除了

但是实际上,这个并没有真正的删除。

我们可以通过 

lsof |grep deleted

 

 

 我们可以看到文件其实还没完全删完的。

实际上还是可以读取的。

只有当一个文件的引用计数为0(包括硬链接数)的时候,才可能调用unlink删除,只要它不是0,那么就不会被删除。所谓的删除,也不过是文件名到 inode 的链接删除,只要不被重新写入新的数据,磁盘上的block数据块不会被删除,因此,你会看到,即便删库跑路了,某些数据还是可以恢复的。换句话说,当一个程序打开一个文件的时候(获取到文件描述符),它的引用计数会被+1,rm虽然看似删除了文件,实际上只是会将引用计数减1,但由于引用计数不为0,因此文件不会被删除。

 

参考:

https://mp.weixin.qq.com/s?__biz=MzI0MDQ4MTM5NQ==&mid=2247495456&idx=2&sn=e2907183c41ee6bd793fd01482c2309e&chksm=e9188a3cde6f032a3ab0782292376864c3777adf4fcaf74badaea5c21be0cabb9843f9916d45&token=35894323&lang=zh_CN#rd

 
posted @ 2022-04-14 10:49  不积硅步,无以至千里  阅读(720)  评论(0编辑  收藏  举报