当前位置: 首页 > news >正文

Linux软连接和硬连接

Linux软连接和硬连接

1. 核心概念

类型

软连接(Symbolic Link)

硬连接(Hard Link)

本质

类似于 Windows 的“快捷方式”

是文件的另一个名字(指向同一个 inode)

存储方式

独立文件,存储目标文件的路径

直接指向原文件的 inode(数据块)

跨分区支持

✅ 支持(路径可跨磁盘)

❌ 不支持(必须同一文件系统)

原文件删除

软连接失效(变成“死链”)

硬连接仍可访问文件数据

文件属性

权限始终是 777(实际权限依赖原文件)

权限与原文件相同


2. 技术原理
  • inode(索引节点):Linux 文件系统的核心元数据,存储文件属性(权限、大小、数据块位置等)。
  • 硬连接:多个文件名指向同一个 inode(引用计数 +1)。
  • 软连接:独立 inode,其数据块中存储目标文件的路径字符串。

文件系统结构示例

原文件:/data/file.txt (inode 100)  
硬连接:/backup/file.txt → inode 100  
软连接:/tmp/link → 路径 "/data/file.txt"

3. 命令对比

操作

软连接

硬连接

创建

ln -s 原文件 软连接名

ln 原文件 硬连接名

查看

ls -l

显示链接路径(如 link -> file

ls -i

查看 inode 是否相同

删除原文件

rm 原文件

→ 软连接失效

rm 原文件

→ 硬连接仍有效


4. 通俗例子
  1. 硬连接:文件的“曾用名”
    • 你本名是 张三,后来改名叫 张老三,但身份证号(inode)不变。
    • 别人无论叫哪个名字,都能找到你(文件数据)。
    • 直到所有名字都被删除(引用计数归零),文件才真正消失。
  1. 软连接:便利贴指引
    • 你在办公室门口贴纸条:“资料在 3 楼 A 柜”。
    • 若有人搬走柜子(删除原文件),纸条就失效了。
    • 若纸条被撕掉(删除软连接),不影响原文件。

5. 使用场景

场景

推荐类型

原因

跨磁盘/分区引用文件

软连接

硬连接无法跨文件系统

需要备份防止误删

硬连接

原文件删除后数据仍存在

动态切换配置文件版本

软连接

修改链接目标即可(如 ln -sf v2.conf v1.conf

6. 注意事项
  • 硬连接不能链接目录(避免循环引用),软连接可以。
  • 修改硬连接文件会直接影响原文件(同一数据块),而软连接只是路径跳转。
  • 查找所有硬连接:find / -samefile 原文件

总结

  • 硬连接是“文件分身”,软连接是“指路牌”。
  • 需要备份?用硬连接需要灵活跳转?用软连接

相关文章:

  • git 挑选:git cherry-pick
  • DeepSeek改写glaredb的示例实现自定义CLI界面程序
  • c# 比较两个list 之间元素差异
  • (五)神经网络
  • uni-app项目实战笔记26--uniapp实现富文本展示
  • MicroProfile的配置和MicroProfile健康
  • 设备树引入
  • 动态面板axure
  • 告别固定密钥!在单一账户下用 Cognito 实现 AWS CLI 的 MFA 单点登录
  • Spring Cloud Gateway 实战:网关配置与 Sentinel 限流详解
  • 零知开源——基于STM32F407VET6零知增强板的四路独立计时器
  • 快速掌握广告联盟APP开发全流程,短剧和游戏广告app
  • 全面拥抱vue3
  • kubectl get pod返回数据研究
  • InfluxDB 3 Core数据库管理指南:从概念到实操的完整流程
  • 机器学习开篇:算法分类与开发流程
  • JavaScript中Object()的解析与应用
  • Redis—主从复制
  • webpack+vite前端构建工具 -答疑
  • kubernetes部署3节点高可用elasticsearch v8.14.3