用 ln -sfn 安全更新软链接
Linux 上用 ln -sfn 重新指向已有符号链接,避免在旧目标目录里生成嵌套链接。
执行 ln -sfn 新目标 链接名,即可原子性地更新已有软链接;链接当前指向目录时务必加 -n。
01命令
命令
$ ln -sfn /opt/app/releases/v2.1.0 /opt/app/current02作用说明
直接 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/current05来源
- ln(1) — Arch Linux manual依据: -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依据: POSIX defines -f to remove existing destination paths before creating the link
最后验证: 2026-09-17 · 分类: 文件与文件夹