在 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 |
通过理解这些区别,可以更合理地选择链接类型以满足需求。