OS | 透过 inode 来理解硬链接和软链接
什么是inode?
每个文件都对应一个唯一的inode,inode用来存储文件的元信息,包括:
- 对应的文件
- 文件字节数
- 文件数据块的位置
- 文件的inode号码
- 文件的硬链接数
- 文件的读写权限
- 文件的时间戳
在Linux系统下,创建一个文件hello.txt
echo 'hello world' -> 'hello.txt'
接着使用stat命令查看hello.txt的inode信息:
stat hello.txt
文件:hello.txt
大小:14 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:34025713 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2022-08-18 15:44:56.158501724 +0800
最近更改:2022-08-18 15:44:56.158501724 +0800
最近改动:2022-08-18 15:44:56.158501724 +0800
创建时间:2022-08-18 15:44:56.158501724 +0800
inode和文件名
操作系统使用inode号码来识别文件,而人使用文件名来识别文件
人在打开文件的时候,实际上系统是先通过文件名找到对应的inode号码,然后根据inode号码找到文件inode信息,根据inode信息找到文件内容所在的数据块,最后读取数据。
硬链接
文件和inode的关系是一对一,而文件名和inode的关系则是一对多,系统允许多个文件名对应一个inode

inode信息中的硬链接(Links)数,就表示当前有几个文件名对应着该inode,换句话说,每个文件名就是文件的一个硬链接
增加硬链接
使用ln命令为hello.txt生成一个硬链接,格式:ln 源文件名 硬链接文件名
ln hello.txt hello-hard-link.txt
再用stat hello.txt查看源文件的硬链接数,值变为2
删除硬链接
rm -f hello-hard-link.txt
再次查看硬链接数,值为1
当一个文件的硬链接大于1时,删除一个硬链接(也就是文件名),不会影响源文件,只有当硬链接数等于 \(0\) ,系统才会删除源文件
修改源文件
修改源文件内容,会影响所有硬链接,因为硬链接都是指向同一个源文件的数据块
软链接
软链接也叫符号链接,很好理解,可以理解为window系统里的快捷方式
先创建一个硬链接:
ln hello.txt hello_hard_link.txt
然后,创建一个软链接:
ln -s hello.txt hello_s.txt
此时,文件hello.txt有2个硬链接,1个软链接,接下来,删除刚刚用来创建软链接的文件名:
rm -f hello.txt
这个时候,打开文件hello_s.txt就会报错“No such file or directory”。
刚才只是删除了一个文件名,并没有影响到源文件,但是通过软链接打开文件却报错了,并不是因为源文件不存在了,而是因为软链接指向的硬链接被删除了。
这就是软链接和硬链接的区别,软链接指向的是文件名(也就是硬链接),硬链接指向的是文件的inode号码。

OS | 透过 inode 来理解硬链接和软链接的更多相关文章
- 透过inode来理解硬链接和软链接
什么是inode? 每个文件都对应一个唯一的inode,inode用来存储文件的元信息,包括: 对应的文件 文件字节数 文件数据块的位置 文件的inode号码 文件的硬链接数 文件的读写权限 文件的时 ...
- 理解 Linux 的硬链接与软链接【转】
转自:https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/index.html 从 inode 了解 Linux 文件 ...
- 理解 Linux 的硬链接与软链接(待研究)
从 inode 了解 Linux 文件系统 硬链接与软链接是 Linux 文件系统中的一个重要概念,其涉及文件系统中的索引节点 (index node 又称 inode),而索引节点对象是 Linux ...
- 转:理解 Linux 的硬链接与软链接
Linux 的文件与目录 现代操作系统为解决信息能独立于进程之外被长期存储引入了文件,文件作为进程 创建信息的逻辑单元可被多个进程并发使用.在 UNIX 系统中,操作系统为磁盘上的文本与图像.鼠标与键 ...
- [svc]linux的inode和block-软硬链接
磁盘结构 容量 磁盘结构 磁盘容量 = 一个柱面大小柱面的总数 = 磁头数量每个磁道上的扇区数一个扇区大小柱面总数 存储容量=磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数 了解-什么是 ...
- 硬链接、软链接和inode
一.inode 在Linux中,“一切皆文件”. 唯一标识文件的是inode而非文件名,文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 寻找正确的文件数据块. 什么是数据块呢?文件储存 ...
- (转)Linux硬链接、软链接及inode详解
inode 文件储存在硬盘上,硬盘的最小存储单位叫做“扇区”(Sector).每个扇区储存512字节(相当于0.5KB). 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读 ...
- 理解 Linux 的硬链接与软链接(转)
Linux 的文件与目录 现代操作系统为解决信息能独立于进程之外被长期存储引入了文件,文件作为进程创建信息的逻辑单元可被多个进程并发使用.在 UNIX 系统中,操作系统为磁盘上的文本与图像.鼠标与键盘 ...
- 理解 Linux 的硬链接与软链接
Linux 的文件与目录 现代操作系统为解决信息能独立于进程之外被长期存储引入了文件,文件作为进程创建信息的逻辑单元可被多个进程并发使用.在 UNIX 系统中,操作系统为磁盘上的文本与图像.鼠标与键盘 ...
- [转帖]详解Linux系统inode原理--硬链接、软链接、innodb大小和划分等
详解Linux系统inode原理--硬链接.软链接.innodb大小和划分等 原创 波波说运维 2019-07-17 00:03:00 https://www.toutiao.com/i6713116 ...
随机推荐
- excel表格怎么设置数据超链接?
在Excel表格中,可以设置超链接来快速导航到其他单元格.工作表.文件.网页等.下面我将详细介绍如何设置数据超链接. 1. 在Excel表格中选择要添加超链接的单元格或文本. 2. 使用鼠标右键点击选 ...
- 手把手教你搭建 Ceph+JuiceFS
Ceph 提供了对象存储,可作为存储引擎在 JuiceFS 中使用.这一组合非常适合云计算.大数据分析和机器学习等数据密集型应用场景. 在日常部署中可直接通过 Ceph RADOS 配合 JuiceF ...
- C# 常量 结构体 委托
常量 const double PI = 3.1415926; 常量名命名一般使用大写字母 枚举类型 开发一个游戏,游戏角色有法师(Mage).射手(Archer).刺客(Assassin).坦克(T ...
- CH395实现主动ping对端功能(代码及说明)
目录 1.PING原理 1.1简介 1.2协议 1.3通信流程 2.代码解释 3.工程链接 PING原理 1.简介 PING是基于ICMP(Internet Control Message Proto ...
- ElasticSearch索引库的增删改查
官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/6.8/indices.html 创建索引.设置分片 https://www. ...
- 太牛叉了!国产 AI 智能体惊艳问世,全面致敬 FastGPT!
太震撼了!太厉害了!昆仑万维正式发布了「天工 SkyAgents」平台,助力大模型走入千家万户.你听听,这个名字一听就有一种巧夺天工的感觉,技艺那是相当的高超. 这个平台基于昆仑万维「天工大模型」打造 ...
- C++ Qt开发:QSqlDatabase数据库组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QSqlDat ...
- 《最新出炉》系列初窥篇-Python+Playwright自动化测试-36-处理web页面定位toast-下篇
1.简介 按理说,现在这种一闪而过的toast的已经相当普及或者是见怪不怪了,应该网上的大网站会用到的,偶然的在一次租房中,看到了这种场景,所以宏哥决定将其拿来主义,进行演示实践一下. 2.租房网站 ...
- SpringMVC中资源路径映射本地文件图片
SpringMVC中资源路径映射本地文件图片 import org.springframework.context.annotation.Configuration; import org.sprin ...
- 国家专用加密数据传输之rsa,3des加密方法-rasor3desc
title: 国家专用加密数据传输之rsa,3des加密方法 date: 2021-12-20 13:08:21.646 updated: 2022-03-10 16:00:58.65 url: ht ...