易君召
发布于 2026-09-05 / 作者:易君召 / 7 阅读
0

Linux 软链接(symbolic link,符号链接)常见使用场景

软链接:相当于 Windows 的快捷方式,是一个独立文件,存储目标文件 / 目录路径;可以跨文件系统,可以指向不存在的文件;删除软链接不影响原文件。ln -s 源 链接名 创建。

1. 版本切换(最经典场景)

一套软件多版本共存,通过软链接指向当前启用版本,不用修改环境变量、配置文件。

  • 示例:jdk、python、node、gcc 多版本

ln -s /usr/local/jdk17 /usr/local/jdk
# 切换版本只需要重新建立软链接,所有脚本读 /usr/local/jdk 不用改代码

比如系统 /usr/bin/python 经常就是软链接,切换 python3.8 /python3.11。

2. 程序固定读取路径,实际文件放在别的位置

应用配置写死路径,但数据 / 配置实际存储在其他盘、挂载盘。

  • 例如:数据库数据、日志、容器数据盘,磁盘空间不够,迁移数据到大磁盘,不修改程序配置。

# 把 /var/lib/mysql 数据迁移到 /data/mysql
mv /var/lib/mysql /data/mysql
ln -s /data/mysql /var/lib/mysql
# mysql程序依旧读取 /var/lib/mysql,感知不到实际位置变了

3. 简化长路径,创建访问别名

路径太深太长,给一个简短访问入口。

# 每次不想敲 /opt/workspace/project-a/config
ln -s /opt/workspace/project-a/config ~/prj-conf
cd ~/prj-conf

4. 多目录共用同一份资源

多个项目需要引用同一套静态资源、公共库、模板文件,不复制副本,修改一处全部生效。

静态网页资源、nginx 站点静态文件、公共脚本。

# project1、project2 共用同一套 static 静态文件
ln -s /data/common/static /opt/project1/static
ln -s /data/common/static /opt/project2/static

5. 兼容旧路径,目录迁移后平滑过渡

目录重构迁移,旧路径不能直接删除,老脚本、老代码还在访问旧路径,用软链接做兼容,避免业务报错。

运维重构目录结构,旧路径 /home/old_service → 迁移到 /data/new_service

ln -s /data/new_service /home/old_service
# 老脚本继续访问旧路径,不需要全部改代码,后续逐步改造下线

6. 容器、Docker 内部路径适配

容器内程序路径固定,宿主机目录结构不一样,软链接做路径映射; 部分程序不支持直接挂载目录,使用软链接绕开限制。

7. Nginx/Web 站点场景

  • 多个虚拟主机复用网站源码;

  • 静态资源目录迁移,不修改 nginx 配置;

  • 发布版本:发布新版本目录,软链接指向最新版本,回滚只需要切换软链接(灰度发布 / 版本回滚经典用法

/web/v1.0.0
/web/v1.0.1
ln -s /web/v1.0.1 /web/current
# nginx root指向 /web/current,升级、回滚只改软链接

8. 备份与日志处理

日志迁移到数据盘,程序写日志路径不变; 注意:logrotate 日志轮转对软链接有坑,轮转时可能会操作真实文件。

软链接 vs 硬链接简单区分

特性

软链接 ln -s

硬链接 ln

本质

快捷方式,独立文件

文件别名,多个目录项指向同一个 inode

支持目录

✅支持

❌不支持目录

跨文件系统

✅可以

❌不能跨分区

源文件删除

链接失效,红闪烁

依然可用

⚠️软链接坑点

  1. 相对路径坑:创建软链接时,源路径写相对路径,是相对于当前工作目录,不是相对于链接存放目录,容易链接失效,生产尽量用绝对路径。

  2. tar 打包默认跟随软链接,会把真实文件打包进去;加 -h 参数跟随解包。

  3. rm 删除软链接:不要加 / 后缀 rm linkdir/,会删除原目录里面内容;直接 rm linkdir

  4. 部分程序(部分 java 程序)会解析软链接拿到真实物理路径,预期行为失效。


本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。

原文链接 https://www.yijunzhao.cn/archives/linux-symbolic-link-common-use-cases-guide

欢迎访问 小易撩挨踢

https://www.yijunzhao.cn/