温馨提示×

软连接和硬连接区别在哪

小樊
47
2026-09-25 01:07:34
栏目: 编程语言

在 Linux / Unix 文件系统中,**软连接(符号链接,symbolic link)和硬连接(hard link)**都是“链接文件”的方式,但本质区别很大。


一、基本概念

1. 硬连接(Hard Link)

  • 是同一个文件的不同名字
  • 多个文件名指向同一个 inode
  • 文件数据只有一份
ln file.txt hardlink.txt

2. 软连接(Soft / Symbolic Link)

  • 是一个特殊的文件,内容指向另一个文件路径
  • 有自己的 inode
  • 类似 Windows 的“快捷方式”
ln -s file.txt softlink.txt

二、核心区别对比

对比项 硬连接 软连接
是否同一 inode ✅ 是 ❌ 否
跨文件系统 ❌ 不支持 ✅ 支持
可链接目录 ❌ 通常不行 ✅ 可以
原文件删除后 仍可用 失效(断链)
占用空间 几乎不占 占用少量
路径关系 无路径概念 依赖路径

三、原文件删除后的表现

硬连接

rm file.txt
cat hardlink.txt   # 仍可读取

✅ 数据还在,直到所有硬连接都删除

软连接

rm file.txt
cat softlink.txt   # 报错:No such file

❌ 链接指向的路径不存在了


四、查看方式

ls -li
  • 硬连接:inode 相同
  • 软连接:l 开头,且显示 -> 目标

五、使用建议

✅ 用软连接当:

  • 快捷方式
  • 跨目录 / 跨磁盘
  • 链接目录

✅ 用硬连接当:

  • 防止误删重要文件
  • 同一文件多名字(不常用)

如果你愿意,我也可以用图示或实际例子场景(比如日志、配置管理)来帮你理解。

0 踩