说明:本文为老男孩linux培训某节课前考试试题及答案分享博文内容的一部分,也是独立成题的,你可以点下面地址查看全部的内容信息。
http://oldboy.blog.51cto.com/2561410/791245

5.描述linux下文件删除的原理(记时3分钟)<?xml:namespace prefix="o">

?xml:namespace>

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操作把文件删除了,那么会出现什么结果呢?当用户执行rm操作删除文件后,再执行ls或者其他文件管理命令,无法再找到这个文件了,但是调用这个删除的文件的进程却在继续正常执行,依然能够从文件中正确的读取及写入内容。这又是为什么呢?

这是因为rm操作只是将文件的i_nlink减少了,如果没其它的链接i_nlink就为0了;但由于该文件依然被进程引用,因此,此时文件对应的i_count并不为0,所以即使执行rm操作,但系统并没有真正删除这个文件,当只有i_nlink及i_count都为0的时候,这个文件才会真正被删除。也就是说,还需要解除该进程的对该文件的调用才行。

以上讲的i_nlink及i_count是文件删除的真实条件,但是当文件没有被调用时,执行了rm操作删除文件后是否还可以找回被删的文件呢?

前面说了,rm操作只是将文件的i_nlink减少了,或者说置0了,实际就是将文件名到inode的链接删除了,此时,并没有删除文件的实体即(block数据块),此时,如果及时停止机器工作,数据是可以找回的,如果此时继续写入数据,那么当新数据就可能会被分配到被删除的数据的block数据块,此时,文件就会被真正的回收了,那时就是神仙也没有办法了。

文件系统删除及inode相关案例:

文件删除案例1:

Web服务器磁盘满故障深入解析
http://oldboy.blog.51cto.com/2561410/612351

inode满案例2:
因inode节点导致执行passwd命令报错处理记录

http://blog.sina.com.cn/s/blog_506ed9e6010106kj.html

简单总结了一下 供大家查参考。

老男孩评:这是老男孩的学生的实战问题解决分享经验,很宝贵!

从上面博文老男孩老师总结大家可学习的知识点:

1) inode知识

2) crontab任务写法

3)/var/spool/clientmqueue的功能和潜在问题及解决方案。

4)strace跟踪命令使用技巧

提示:不过这些问题完全可以事先避免的。老男孩linux培训的课程会详细讲这里!

更详细的描述及案例见:

老男孩linux运维实战培训-Linux系统文件删除原理详细介绍

老男孩linux运维实战培训-Linux文件系统实战精华讲解
老男孩linux运维实战培训-Linux磁盘与文件系统部分精华讲解
老男孩linux运维实战培训-Linux系统文件删除恢复实战

提示:以上课上考试为口头表达题,课后请当成问题总结笔记。每答对一题加5分(课上抢答者才有分)。

解答:见课堂老男孩老师的讲解或观看相关视频讲解及教案

老男孩linux运维实战培训联系方式

咨询:QQ: 70271111 357851641 31333741

电话:18911718229

网站地址:http://www.etiantian.org  http://oldboy.cc

blog:http://oldboy.blog.51cto.com
======================================================
欢迎广到运维兄弟一起交流linux/unix网站运维技术!

网站运维交流群:180056518 114580181 45039636

老男孩 QQ:31333741

mail:31333741@qq.com

linux下文件删除的原理精华讲解(考试题答案系列)相关推荐

  1. linux下文件删除不了

    在linux系统下当删除文件时提示无法操作,有可能是文件被使用了chattr改变了属性.可以使用lsattr命令来查看 [root@linux236 root]# lsattr ---i------- ...

  2. 1、取得/etiantian文件的权限对应的数字(考试题答案系列)

    说明:本文为老男孩linux培训某节课前考试试题及答案分享博文内容的一部分,也是独立成题的,你可以点下面地址查看全部的内容信息.http://oldboy.blog.51cto.com/2561410 ...

  3. 关于Linux下文件删除文件时提示No such file or directory的解决办法

    转自:http://blog.51cto.com/13921547/2172901 本人了Linux小白一枚,遇到一点问题想请老大们指点一下 今天练习tar命令压缩文件时想给给文件名内增加一个当前年月 ...

  4. linux恢复rm命令,linux下rm删除与恢复

    最近一个新客户由于长期没做备份,再加上客户与之前的技术合作伙伴之间的一些不愉快.导致客户的整体linux系统被全部用rm删除.我们对这种技术人员的职业素养.道德品质和法律素养表示唏嘘,客户已经在第一时 ...

  5. 【 Linux】文件删除原理

    文章目录 Linux文件删除原理 文件的索引节点和链接 文件删除的过程 文件删除后是否能恢复 Linux文件删除原理 Linux是一个强大的操作系统,它提供了许多命令和工具来管理文件和目录.其中,最常 ...

  6. linux 批量选中文本删除,教程 | 【七牛云】Qshell Linux下批量删除文件教程

    原标题:教程 | [七牛云]Qshell Linux下批量删除文件教程 项目内容 本文将教您使用七牛云提供的Qshell工具在linux下安装并且使用批量查询和批量删除命令行进行远程删除文件. 项目教 ...

  7. Linux下文件重命名、创建、删除、修改及保存文件

    Linux下文件重命名.创建.删除.修改及保存文件 一.重命名(更名) linux 给文件改名的命令是mv命令 mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中.该命令等同于DOS系统下的 ...

  8. linux剪切到另一个文件夹,linux下文件夹操作常见命令如创建、复制、剪切、重命名、清空和删除命令 实例说明...

    linux下文件夹操作常见命令如创建.复制.剪切.重命名.清空和删除命令 实例说明,在home目录下有wwwroot目录,wwwroot下有sinozzz目录,即/home/wwwroot/sinoz ...

  9. linux清理oracle磁盘空间,Linux / Unix 下文件删除、句柄 与空间释放问题

    Linux / Unix 下文件删除.句柄 与空间释放问题 临时表空间,并切换了数据库设置:[oracle@corde tdb]$ ls -sort total 35101212 51264 -rw- ...

最新文章

  1. 记一次 react 15.3.1 老项目升级到 react 16.7.0 之路
  2. 大型网站架构模式之三
  3. linux区分用户的权限级别可用,如何限制Linux内核级别的特权用户访问?
  4. dlp型3d打印机_【论文新萃】光聚合成型3D打印技术复制印章研究
  5. stream 多个字段分组_Python Pandas对Excel数据的分组聚合和数据透视
  6. 1年sql数据库经验,却说数据模型一文不值?你还没懂数据仓库
  7. HBase常用命令(超全超详细)
  8. 非常好用的离线地图APP
  9. 【考研数学】函数图像(三角函数、幂函数、指数函数等)
  10. 权重分析——CRITIC权重法
  11. 2015计算机一级试题及答案,2015年全国计算机等级考试一级试题及答案【精编直接打印版】.doc...
  12. keil 5(C51)下载安装
  13. matlab regstat函数,MATLAB如何使用binostat函数计算二项分布的期望和方差
  14. Android监听蓝牙与设备连接状态、关闭和打开状态
  15. GBASE 8s UDR内存管理_04_mi_zalloc
  16. Mysql数据库用户密码暴力破解
  17. 模型无关的全局特征依赖分析方法 I ——部分依赖曲线分析与条件依赖曲线分析
  18. 小程序高级电商前端第1周走进Web全栈工程师一----小程序注册、开发工具推荐、《风袖》首页布局详尽分析、Webstorm开发小程序必配配置、mock数据...
  19. 【综合算法】不考虑误差的TDOA定位
  20. RGB与YCbCr颜色空间的转换

热门文章

  1. windows7 php 无法启动,window_Win7系统无法启动错误提示代码为File:\BOOT\BCD,  很多人Win7系统用户都有遇 - phpStudy...
  2. digest 用户认证 response生成算法
  3. Go Web编程--解析JSON请求和生成JSON响应
  4. saslauthd mysql_open***使用MySQL进行认证
  5. Redis:主从配置
  6. Node.js文件的同步异步事件循环
  7. 如何安装dubbo的管理控制台
  8. Redis的内存回收机制和数据过期淘汰策略
  9. rocketMq 顺序消费
  10. 【332】Machine Learning