在 Linux 文件系统中,符号链接(Symbolic Link,软链接)和硬链接(Hard Link)是两种不同的文件链接方式,主要区别如下:
硬链接
ls -l 的第二列(如 2 表示有两个硬链接)。符号链接
ls -l 显示时会有 -> 标记(如 lrwxrwxrwx 1 user ... link -> target)。ln -d 强制创建,但极不推荐。ln -s /path/to/dir linkdir)。ls -l 显示的大小是路径长度)。# 创建硬链接
ln original.txt hardlink.txt
# 创建符号链接
ln -s original.txt symlink.txt
| 特性 | 硬链接 | 符号链接 |
|---|---|---|
| inode | 与原始文件相同 | 独立 inode |
| 跨文件系统 | ❌ 不支持 | ✅ 支持 |
| 原始文件删除 | 仍可访问 | 链接失效 |
| 目录链接 | ❌ 默认不允许 | ✅ 允许 |
| 存储内容 | 直接指向数据块 | 存储目标文件路径 |
| 命令 | ln source target |
ln -s source target |
通过理解这些区别,可以更合理地选择链接类型以满足需求。