在 Linux / Unix 文件系统中,**软连接(符号链接,symbolic link)和硬连接(hard link)**都是“链接文件”的方式,但本质区别很大。
ln file.txt hardlink.txt
ln -s file.txt softlink.txt
| 对比项 | 硬连接 | 软连接 |
|---|---|---|
| 是否同一 inode | ✅ 是 | ❌ 否 |
| 跨文件系统 | ❌ 不支持 | ✅ 支持 |
| 可链接目录 | ❌ 通常不行 | ✅ 可以 |
| 原文件删除后 | 仍可用 | 失效(断链) |
| 占用空间 | 几乎不占 | 占用少量 |
| 路径关系 | 无路径概念 | 依赖路径 |
rm file.txt
cat hardlink.txt # 仍可读取
✅ 数据还在,直到所有硬连接都删除
rm file.txt
cat softlink.txt # 报错:No such file
❌ 链接指向的路径不存在了
ls -li
l 开头,且显示 -> 目标✅ 用软连接当:
✅ 用硬连接当:
如果你愿意,我也可以用图示或实际例子场景(比如日志、配置管理)来帮你理解。