首页/系统/Linux 运维命令速查/ln 创建硬链接与软链接
文件与目录76 条

ln 创建硬链接与软链接

创建硬链接或符号链接(-s);软链是发布切换、版本目录(current 指向)与跨分区引用的基础设施。

Linux 运维命令速查系统更新于 2026-10-13

ln 是什么

ln 创建硬链接或符号链接。符号链接是一个独立的文件,内容是目标路径;硬链接是同一份数据多了一个名字,两者指向同一个 inode。发布切换、版本目录、跨分区引用都依赖符号链接;硬链接则用于同一文件系统内的多路径引用与节省空间。

基本信息

适用平台Linux、Unix 通用(coreutils)
命令语法ln [-s] 目标 链接名
常用选项-s 创建符号链接 / -f 覆盖已存在的链接 / -n 把已有的符号链接当普通文件处理 / -T 把目标当普通文件 / -v 显示创建过程
关键差异符号链接可跨文件系统、可指向目录;硬链接不能跨文件系统也不能指向目录

典型使用场景

  • 发布切换:让指向当前版本的链接快速切换到新版本
  • 版本目录:保留多个版本,用固定名字引用当前生效的那个
  • 跨分区引用:把大容量目录挂到应用期望的路径下
  • 节省空间:同一份数据在同一文件系统内多处引用
  • 兼容路径:把老路径保留为符号链接指向新位置

常用示例

常用示例
ln -s /opt/app/v20261012 /opt/app/current     # 指向版本目录
ln -sfn /opt/app/v20261013 /opt/app/current   # 原子切换发布版本
ln -s /data/logs app-logs                     # 相对目标按链接所在目录解析
ln big.iso big-hardlink.iso                   # 硬链接:同 inode 多个名字
ls -l /opt/app/current

选项说明

选项作用提示
-s创建符号链接最常用的形式
-f覆盖已存在的链接切换发布版本时配合使用
-n已有链接指向目录时不进入该目录防止链接嵌套
-T把目标当普通文件处理避免在目录内部创建链接
-v输出创建的链接便于确认结果
目标位置已经是目录时,不加以限制的创建会把链接放进该目录内部,形成意料之外的嵌套;版本切换场景要配合相应选项。
符号链接的目标写成相对路径时,解析以链接所在目录为基准,链接被移动后容易断开;跨目录引用建议写绝对路径。

易错点

  • 相对路径的目标按链接所在目录解析,移动链接后容易断链
  • 硬链接不能跨文件系统,也不能指向目录
  • 覆盖已有链接时不加相应选项,会创建出嵌套的链接
  • 删除符号链接只删链接本身;硬链接要等所有名字消失,数据才真正释放
  • 发布切换时先删旧链接再建新链接,会留下目标不存在的时间窗口

数据来源与参考

  • man 1 ln(GNU coreutils 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌