博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux文件删除原理
阅读量:6802 次
发布时间:2019-06-26

本文共 693 字,大约阅读时间需要 2 分钟。

文件删除的原理

  linux的文件名是存在父目录的block里面的,并指向这个文件的inode节点,这个文件的inode节点在标记指向存放这个文件的block的数据块。我们删除文件,实际上不是清除inode节点和block的数据,只是在这个文件的父目录里面的block中,删除了这个文件的名字,从而使这个文件名消失,并且无法指向这个文件的inode节点,当没有文件指向这个文件inode节点的时候,会同时释放inode节点存放这个文件的数据块,并更新inode MAP 和block MAP 今后让这些位置可以用于放置其它文件数据。

  所以一般静态文件我们只需要用rm 命令删除其文件名即可删除文件。但是我们常常面对的是下图的这种情况。

 

说明:以上图形 i_link=2 和i_count=1

文件删除的条件:当i_link=0并且i_count=0 ,这时文件才能被删除。

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

i_count的意义是当前文件使用者(被调用)的数量,i_link的意义是介质链接的数量(硬链接的数量);可以理解为i_count是内存引用计数器,i_link是磁盘的引用计数器。

 

案例:

 企业web服务器的磁盘满了,删除日志文件后发现还是满的!

原因就是磁盘空间还在被程序调用,并没有能删除,等程序调用完了就显示正常了。

转载于:https://www.cnblogs.com/heboxiang/p/9967663.html

你可能感兴趣的文章
elasticSearch6安装
查看>>
if条件测试语句
查看>>
欢迎使用如下地址领取阿里云腾讯云千元优惠券
查看>>
怎么提取PDF页面?简单的方法介绍
查看>>
大数据生态之zookeeper(典型应用场景)
查看>>
PDF文件怎么添加页眉页脚,有什么简单的方法吗?
查看>>
游戏的飞跃进展
查看>>
好程序员web前端技术分享移动端页面布局
查看>>
Oracle 10g新增列方式指定HINT
查看>>
RAC 环境下参数文件(spfile)管理
查看>>
Tomcat优化
查看>>
Linux系统启动过程故障排查
查看>>
linux下常用命令
查看>>
canvas drag 实现拖拽拼图小游戏
查看>>
返回一个首尾相连的整数数组中最大子数组的和数
查看>>
线程安全和线程不安全的理解
查看>>
工厂方法模式(java,c++,objective-c)
查看>>
优秀的博文链接
查看>>
HBase-1.0.1学习笔记(一)集群搭建
查看>>
CentOS 6.4安装配置LNMP服务器(Nginx+PHP+MySQL)
查看>>