浅谈 目录项(dentry) 、 inode 、硬链接

news2024/11/22 16:39:41

文章目录

    • 名词解释
    • inode 介绍
    • dentry 介绍
    • 硬链接 介绍

名词解释

inode:索引节点,是一个结构体,存储文件的属性等信息。
dentry:目录项,是一个 dir_entry 结构体,重要成员有文件的 inode 索引号,文件名等,存储着文件的信息。

inode 介绍

在 Linux 中,一个文件由两部分组成:dentry (目录项)和 inode(索引节点),dentry 里面包含 inode

关于 inode,本质上是一个结构体,存放文件的属性信息,就是使用 ls -l 查询出来的信息,例如:权限、类型、大小、时间、用户、盘块位置

需要注意的是 盘块位置 这个属性,盘块保存的是文件的数据,inode 结构体记录的是文件的属性信息。

在这里插入图片描述

关于 inode,我们知道了 inode 能描述文件的 属性信息 和 数据信息(盘块位置)

需要注意的是,inode 描述的信息里,不包含文件名

dentry 介绍

前面说了,inode 描述的信息里面不包括文件名,那么文件名存放在哪里呢?
文件名单独存放,dentry 里面包含 文件名 + inode 。
在这里插入图片描述

硬链接 介绍

例如给 A 文件创建硬链接:
在这里插入图片描述

最后一次执行 ll 可以看到 A.txt 和 B 的链接计数器都 +1 变成了 2.

创建硬链接我们需要知道的规则是:硬链接实际上是多个文件名指向同一个 inode。

所以 B 和 A.txt 具有相同的 inode,不同的 dentry。

看到这也就可以解释,为什么无论在哪个硬链接修改文件内容,对其他硬链接也会立即同步修改内容。

看个图就懂了:
在这里插入图片描述

这是因为 A 和 B 共用 inode,而 inode 里面有记录盘块位置,两个文件使用的盘块是一致的,所以修改任意一个硬链接都会影响到其它文件。

如果删除一个文件,那么删除的也只是 dentry ( inode 引用计数 -1),并不是将文件内容删除了:
在这里插入图片描述
当 dentry 全部被删除,也就是删除了 A.txt 和 B 文件,那么 inode 的引用计数值就是 0。

注意,引用计数值为 0 ,只是表示文件全部被删除了,表示磁盘空间没有被引用,但是数据依旧存在于磁盘中。

没有被引用的磁盘空间可被其它数据覆盖,所以如果想彻底删除数据,需要向磁盘写入大量数据来覆盖。

我们所说的"数据恢复",其原理就是新建 inode,指向未被覆盖的目标区域:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1472788.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[NPUCTF2020]ezinclude ---不会编程的崽

做完这题,又get到一个新的知识点。上界面 源代码里有线索 secret是秘密值,name与pass应该是可以控制的变量。抓个包看看 发送与请求有hash值,没猜错应该是用来验证的。拿去爆破了,啥也没爆破出来。先传参 右边的hash值改变了。猜想…

Transformer视频理解学习的笔记

今天复习了Transformer,ViT, 学了SwinTransformer, 还有观看了B站视频理解沐神系列串讲视频上(24.2.26未看完,明天接着看) 这里面更多论文见:https://github.com/mli/paper-reading/ B站视频理解沐神系列串讲视频下(明天接着看&a…

matlab动力学共振颤振研究

1、内容简介 略 58-可以交流、咨询、答疑 采用四阶龙哥库塔方法求解方程组,方便控制碰撞的时间,检测到碰撞的时间,改变速度,调整位移,碰撞检测通过对比相对位移 2、内容说明 略 基本思路:采用四阶龙哥…

【前沿热点视觉算法】-面向显著目标检测的注意区域空间金字塔池网络

计算机视觉算法分享。问题或建议,请文章私信或者文章末尾扫码加微信留言。 1 论文题目 面向显著目标检测的注意区域空间金字塔池网络 2 论文摘要 显著目标检测(SOD)的最新进展主要依赖于空间空间金字塔池(ASPP)模块…

2024全国水科技大会暨土壤和地下水污染防治与修复技术创新论坛(七)

论坛召集人:李 辉 上海大学环境与化学工程学院教授 一、会议背景 十四五”时期,我国生态文明建设进入以减污降碳协同增效为重点战略方向,促进经济社会发展全面绿色转型,实现生态环境质量改善由量变到质变的关键时期。聚焦土壤与地…

如何操作系统缓冲区减少了磁盘碎片化?

如何操作系统缓冲区减少了磁盘碎片化? 在探讨操作系统如何通过使用缓冲区来减少磁盘碎片化之前,我们需要先了解什么是磁盘碎片化以及它为什么会对我们的电脑性能造成影响。 磁盘碎片化简介 磁盘碎片化发生在计算机硬盘上存储数据的过程中。简单来说&am…

vue中动态表格中文校验,但是中文的参数无法获取

场景: 解决方案: 因为上述的正则表达式后,使用搜狗输入法没有问题,但采用微软自带输入法后,会存在输入数字及英文时为正常,切换为汉字后,会存在吞并当前光标前的字符。具体吞并个数和输入法中有…

Syntax Error: Error: Cannot find module ‘node-sass‘报错解决

1.将项目中的node_modules删除掉 2.npm install重新运行安装命令 3.再npm run serve(项目启动命令)启动项目即可

27.HarmonyOS App(JAVA)可复用列表项的ListContainer

可复用列表项的ListContainer 简短的列表可以通过定向布局实现,但是如果列表项非常多,则使用定向布局就不再合适。如需要创建50个列表项的列表,那么用定向布局实现至少需要创建50个以上的组件了。然而,限于设备屏幕大小的限制,绝大多数组件不会显示在屏幕上,却会占据大量的内存…

Segment Routing IPv6介绍

定义 SRv6(Segment Routing IPv6,基于IPv6转发平面的段路由)是基于源路由理念而设计的在网络上转发IPv6数据包的一种协议。SRv6通过在IPv6报文中插入一个路由扩展头SRH(Segment Routing Header),在SRH中压…

链栈的代码

1.c #include"1.h" //申请栈顶指针 top_p create_top() {top_p top (top_p)malloc(sizeof(top_t));if(topNULL){printf("空间申请失败\n");return NULL;}top->len 0;top->ptop NULL; //刚申请栈指针时没有指向元素return top; } //申请结点的函…

贪心算法学习

贪心算法(Greedy Algorithm)是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。贪心算法在有最优子结构的问题中尤为有效。然而,要注意的是贪心…

matlab关键路径的工序安排和dijkstra路径规划

1、内容简介 略 59-可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 matlab关键路径的工序安排和dijkstra路径规划_哔哩哔哩_bilibili 4、参考论文 略

亚洲唯一!京东荣获2024年度Gartner供应链技术创新奖背后的创新探索

序言: 序言:2月14日晚间,Gartner公布了2024年度Garter Power of the Profession供应链大奖,京东集团荣获供应链技术创新奖,成为获得该奖项的唯一亚洲企业。Gartner Power of the Profession供应链奖项已经举办十年&am…

软考46-上午题-【数据库】-数据查询语言DQL1

一、SQL数据查询功能 SELECT语句的语法如下: 【注意】: 使用DISTINCT选项可以去重; form子句中出现多个基本表或视图时,系统首先执行笛卡尔积操作。 下面的查询示例均以这些表为基础 1-1、投影查询-SELECT 【回顾】:…

数字化运维与AIOps

干掉传统运维的不是devops,不是容器化,而是AI。随着未来基础设施的膨胀和复杂度急剧提升,人类运维能力已经显得力不从心。运维最终的归宿一定是人类决策,AI汇报与执行。 什么是数字化运维 数字化运维是一种基于信息技术手段数字化…

边缘计算网关与边缘计算的融合之道-天拓四方

随着物联网、大数据和人工智能的飞速发展,数据处理和分析的需求呈现出爆炸式增长。传统的中心化数据处理模式已难以满足实时性、低延迟和高带宽的需求,边缘计算应运而生,成为解决这一难题的关键技术。而边缘计算网关,作为连接边缘…

HarmonyOS—低代码开发中使用业务组件

开发者在DevEco Studio低代码可以通过拖拽组件栏提供的业务组件,快速开发包含华为帐号登录、华为支付场景的应用。低代码的登录、支付业务组件都是通过集成AGC提供的SDK实现,低代码简化了手动集成SDK、调用SDK接口的工作。 NOTE 该功能在DevEco Studio 3…

9.网络游戏逆向分析与漏洞攻防-游戏网络架构逆向分析-接管游戏连接服务器的操作

内容参考于:易道云信息技术研究院VIP课 上一个内容:游戏底层功能对接类GameProc的实现 码云地址(master 分支):https://gitee.com/dye_your_fingers/titan 码云版本号:44c54d30370d3621c1e9ec3d7fa1e2a0…

激发想象,连接未来:Sora AI视频模型探索之旅

随着人工智能技术的飞速发展,AI视频模型已成为科技领域的新热点。而在这个浪潮中,OpenAI推出的首个AI视频模型Sora,以其卓越的性能和前瞻性的技术,引领着AI视频领域的创新发展。 技术解析:AI的魔法在视频中的展现 在探…