深入理解 Linux 软链接与硬链接:区别与应用场景
链接是 Linux 文件系统的核心特性,正确使用可简化管理。
1. 硬链接 (Hard Link)
- 多个文件名指向同一个 inode(文件数据)。
- 删除原文件不影响硬链接(引用计数减1,计数不为0则数据保留)。
- 不能跨文件系统,不能链接目录。
ln /path/original /path/hardlink
ls -li /path/original /path/hardlink # 查看 inode 号相同2. 软链接 (Symbolic Link / Symlink)
- 特殊文件,存储目标路径。
- 原文件删除则软链接失效(悬空链接)。
- 可跨文件系统,可链接目录。
ln -s /target /path/symlink
ls -l /path/symlink # 显示 -> /target3. 实际应用场景
- 硬链接:备份快照(如
rsync --link-dest),避免重复存储。 - 软链接:版本切换(如
ln -sf /usr/bin/python3.11 /usr/bin/python)、快捷方式、跨分区链接。
4. 查找所有硬链接
find / -inum $(stat -c %i file) 2>/dev/null5. 注意事项
- 硬链接不增加文件大小,但修改任一链接都会改变内容。
- 软链接的权限(777)不决定实际目标权限,目标权限决定访问。
- 谨慎删除软链接源文件,避免使用
rm -rf误删链接指向目录。
