细说Linux下文件删除

  • Post author:
  • Post category:linux




回顾之前


Linux中删除文件的原理


du和df命令统计磁盘空间的区别


如何利用proc目录恢复被删除的文件



Linux中删除文件的原理

Linux中的文件被分为用户数据和文件元数据。Linux中文件数据都存储在块中(常见块的大小是4KB,即连续8个扇区sector组成一个块block),而文件的元数据,例如文件的创建者、文件的创建日期、文件的大小等等,都是存贮在叫做inode区域中的。中文译名索引节点。

Linux是通过link的数量来控制文件删除的,只有当一个文件不存在任何link的时候,这个文件才会被删除。一般来说,每个文件都有2个link计数器:i_count 和 i_nlink。

i_count 和 i_nlink,从VFS inode结构体中可以找到:

struct inode {
struct hlist_node   i_hash; 
struct list_head    i_list; 
struct list_head    i_sb_list; 
struct list_head    i_dentry; 
unsigned long    i_ino; //索引节点号 
atomic_t     i_count; //引用计数器 
unsigned int     i_nlink; 



版权声明:本文为askcto原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。