Linux硬链接与软连接
Linux文件包含两部分数据,用户数据和元数据,期中用户数据存放的就是文件的存储内容,元数据存储的即是文件的属性,所有者,权限,创建时间,还有一个最重要的就是inode号.
在Linux系统中,真正区分一个文件的是这个文件的inode号而非文件名,并且多个文件名对应一个inode号也是很常见的,因此,Linux中要真正删除一个文件,需要将该文件inode号对应的所有不同文件名的文件路径删除掉,这个文件才会真正被释放掉.
举个例子,有一个文件inode号为12700,而文件A,B,C的inode号均为12700,因此这三个文件其实都代表的是一个文件,也就是inode为12700的文件,同样,如果要删除这个文件,必须将A,B,C均删除该文件 才会真的被释放.
这种多个文件对应一个inode号的方式也成为硬链接.
硬链接简单来说就是给源文件起个别名,不占用实际的存储空间,删除任何一个硬链接文件都不会对源文件造成影响,同样,删除源文件也不会对硬链接文件造成影响.
与之对应的还有软连接,软链接在Linux中是一种特殊的文件,占用实际的存储空间,特殊之处在于它的用户数据区存储的是另一个文件的位置信息.删除软连接不会对源文件影响,但删除源文件会导致软连接成为一个死链接.
【推荐】国内首个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月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?