Linux软硬连接
一、ln命令:创建文件之间的链接,连接类型包括硬链接和软连接。
硬链接:硬链接生成的是普通文件
软连接/符号链接:生成符号链接文件
二、 readlink命令:主要用来找到符号链接所指向的位置
使用cat查看软连接文件,只能看到源文件的内容。软连接文件存储的是源文件的路径。
软链接可以看到源文件的路径
硬链接看不到信息
三、 inode与硬链接
操作系统中专门用于管理和存储文件的信息软件称之为文件系统,文件系统将文件的元信息(文件创建者,日期,大小等,可以通过stat命令查看元信息)存储在一个称之为inode的区域。
1. 查看文件inode号:ls -li
inode大小:硬盘格式化的时候,系统自动分为2个区,一个是数据区,一个是inode区(存放inode信息)。每个inode节点大小,一般是128字节或是256字节,inode节点的总数在格式化的时候就决定了。
block磁盘块:block是存放实际文件数据的单元,例如图片、视频、文本等数据,单个文件占用多个block来存储。操作系统标识文件是以inode号码识别,文件名只是一个绰号而已。
2. 文件系统读取文件
3 硬链接:一般情况下,文件名与inode号是一一对应的,Linux系统允许多个文件路径指向同一个inode号码。
目录不支持硬链接;不得跨文件系统;硬链接数会增加inode引用计数
4. 软连接:类似于windows的快捷方式,是指向一个文件路径的另一个文件路径
特性:1)软链接是两个独立的文件,有各自的inode,创建软链接不会增加符号引用计数
2)支持目录软链接,可以跨文件系统
3)软链接有自己的inode号
4)软链接文件类型是l
5) 软链接指向源文件,若源文件不存在,软链接失效(白字红底闪烁报错)
5. 软硬连接原理图
软硬链接总结:
1)删除软链接对源文件,硬链接无影响
2)删除硬链接对源文件,软链接无影响
3)删除源文件,对硬链接,文件硬链接数减少。
6. 文件夹的链接数:
文件夹创建后,默认有.和..两个目录
.的inode号就是当前目录的inode号,如同硬链接
..的inode号是上级目录的inode号,如同父目录的硬链接
因此,任意一个目录的硬链接基数都是2(目录名和当前目录名)
文件夹禁止创建硬链接
四、 查看和管理inode
无论是硬盘、U盘等在Linux中被格式化为ext系列的文件系统后,都被分为:inode—默认128或者256字节;Block—默认1-4k
查看文件系统的inode总数以及剩余数量
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏