用 ln -sfn 安全更新软链接

Linux 上用 ln -sfn 重新指向已有符号链接,避免在旧目标目录里生成嵌套链接。

Linux链接路径符号链接低风险
执行 ln -sfn 新目标 链接名,即可原子性地更新已有软链接;链接当前指向目录时务必加 -n。

01命令

命令
$ ln -sfn /opt/app/releases/v2.1.0 /opt/app/current

02作用说明

直接 ln -sf 目标 链接是经典陷阱:如果链接本身指向一个目录,新的链接会被创建到那个目录内部,而不是替换它。-n 让 ln 把链接当作普通文件处理,-f 则先删除再重建——两者配合的 -sfn 正是部署中常见的 releases/current 软链接切换写法。

03风险

风险低风险
!注意: 对目录软链接执行 ln -sf 而不加 -n,会在旧目标内部悄悄创建新链接;完成后用 ls -l 核对一下。

04撤销

撤销
$ ln -sfn /opt/app/releases/v2.0.9 /opt/app/current

05来源

  • ln(1) — Arch Linux manual
    Arch Linux · technical · 2026-09-17
    依据: -f removes existing destination files, -n treats LINK_NAME as a normal file if it is a symlink to a directory, -v prints each link made
  • ln(1P) — POSIX manual page
    man7.org · technical · 2026-09-17
    依据: POSIX defines -f to remove existing destination paths before creating the link

最后验证: 2026-09-17 · 分类: 文件与文件夹