在 CentOS(以及大多数 Linux 发行版)里,**软连接(symbolic link,符号链接)**通常用 ln -s 来创建。下面从“怎么做”和“怎么做才好(最佳实践)”两方面说。
ln -s 源文件或目录 软连接路径
ln -s /opt/app/v1 /opt/app/current
这样就生成了一个软连接:
/opt/app/current -> /opt/app/v1
查看:
ls -l /opt/app/current
✅ 推荐:
ln -s /data/www/html /var/www/html
❌ 不推荐(容易失效):
ln -s ../www/html /var/www/html
原因:软连接移动或在不同目录使用时,相对路径可能找不到源。
-fln -sf /opt/app/v2 /opt/app/current
否则如果 current 已存在,会报错。
/✅ 正确:
ln -s /data/logs /var/log/app
❌ 容易出错:
ln -s /data/logs/ /var/log/app
(结尾 / 有时会导致“目录里的链接”而不是“目录链接”)
/opt/app/
├── v1
├── v2
└── current -> v2
升级时:
ln -snf /opt/app/v2 /opt/app/current
-n 防止把链接建到目录里。
✅ 正确:
rm /opt/app/current
❌ 危险:
rm -rf /opt/app/current/
(可能删的是源目录内容)
ls -l
find /path -xtype l
find -xtype l 可找出“断链”。
ln -s /data/www/my-site /var/www/html
ln -sf /usr/java/jdk-17 /usr/java/default
ln -s /etc/nginx/sites-available/site.conf /etc/nginx/sites-enabled/site.conf
CentOS 做软连接:
ln -s 绝对路径源 目标,更新用ln -snf,删链接用rm别加/。
如果你有具体场景(比如服务、目录、用户家目录、Docker 里用),我可以给你更合适的写法。