在 CentOS(以及大多数 Linux 系统) 中,软连接(Symbolic Link,也叫符号链接) 是一种指向另一个文件或目录的特殊文件,类似于 Windows 里的“快捷方式”。
可以把一个文件或目录链接到更方便的位置,避免频繁切换路径。
示例:
ln -s /var/log/nginx/access.log ~/access.log
以后直接访问 ~/access.log 即可查看日志。
常用于软件多版本共存,通过软连接切换默认版本。
示例:
ln -s /usr/bin/python3.9 /usr/bin/python3
系统调用 python3 实际使用的是 python3.9。
将配置文件集中存放,通过软连接引用到应用目录。
示例:
ln -s /etc/nginx/sites-available/site.conf /etc/nginx/sites-enabled/site.conf
软连接本身非常小,不复制文件内容,只保存路径。
✅ 软连接可以跨分区、跨文件系统
❌ 硬链接(hard link)不行
| 对比项 | 软连接 | 硬链接 |
|---|---|---|
| 本质 | 指向路径 | 指向 inode |
| 跨文件系统 | ✅ 支持 | ❌ 不支持 |
| 原文件删除 | ❌ 失效 | ✅ 仍可用 |
| 是否可链接目录 | ✅ 可以 | ❌ 不可以 |
| 文件大小 | 很小 | 与原文件一样 |
ln -s 源文件 软连接名
示例:
ln -s /opt/app/app.jar /usr/local/bin/app.jar
ls -l
示例输出:
lrwxrwxrwx 1 root root 20 Mar 10 10:00 app.jar -> /opt/app/app.jar
l 开头表示软连接,-> 后面是目标路径。
✅ 只删除软连接,不影响原文件
rm app.jar
❌ 错误方式(会删原文件内容):
rm app.jar/
如果你愿意,我可以结合 CentOS 7 / 8 / Stream 或 某个具体场景(如 Nginx、Java、Python) 给你更贴合实际的示例。