Linux文件删除的原理:
Linux是通过link的数量来控制文件的删除的,只有当一个文件不存在任何link的时候,这个文件才会被删除,一般来说每个文件都有2个link计数器:i_count和i_nlink.
i_count的意义是当前文件使用者(或被调用)的数量i_nlink的意义是介质连接的数量(硬连接的数量);可以理解为i_count是内存引用计数器,i_nlink是磁盘的引用计数器
当一个文件被某一个进程引用时,对应i_count数就会增加,当创建文件的硬连接的时候,对应i_nlink数就会增加。
对于删除命令rm而言,实际就是减少磁盘引用计数i_nlink.这里就会有一个问题,如果一个文件正在为某一个进程调用,二用户却执行rm操作把文件删除,那么会出现什么情况?