在 Linux / Unix 系统中,修改**软链接(符号链接,symbolic link)**的目标有几种常见方式,下面按使用场景说明。
先删除原软链接,再新建:
rm link_name
ln -s new_target link_name
示例:
rm /usr/local/bin/mytool
ln -s /opt/version2/mytool /usr/local/bin/mytool
✅ 简单、清晰、不易出错
ln -sf 强制覆盖(最方便)ln -sf new_target link_name
示例:
ln -sf /opt/version2/mytool /usr/local/bin/mytool
说明:
-s:创建软链接-f:如果已存在则强制覆盖⚠️ 注意:link_name 是链接名本身,不是它指向的目录
ln -snf(推荐安全写法)ln -snf new_target link_name
-n:把 link_name 当作普通链接,而不是目录✅ 避免误把软链接当目录使用
readlink + 重新创建(脚本中常见)old_target=$(readlink link_name)
ln -sf new_target link_name
ls -l link_name
或:
readlink link_name
❌ 错误写法(会创建到目录里):
ln -sf new_target link_name/
✅ 正确:
ln -sf new_target link_name
| 场景 | 推荐命令 |
|---|---|
| 手动修改 | ln -snf new_target link_name |
| 脚本中 | ln -sf |
| 不确定时 | 先 rm 再 ln -s |
如果你有具体路径或使用场景(如 Docker、启动脚本、版本切换),我可以给你更精确的命令。