ln -s 是什么?一文讲清 Linux 软链接的本质与用法
在 Linux 运维、软件部署、服务配置中,你一定见过这样的命令:
ln -s /usr/local/mfs/bin/mfsmaster /usr/bin/mfsmaster
很多人只知道“这是个快捷方式”,但并不清楚它和复制、硬链接的区别,也不知道什么时候该用、什么时候不该用。
今天这篇文章,就把 ln -s彻底讲清楚。
一、一句话理解 ln -s
✅ ln -s用来创建一个“软链接(符号链接,Symbolic Link)”
可以理解成:
Linux 世界里的“快捷方式”
它本身不存数据,只保存“指向谁”。
二、基本语法
ln -s 源文件或目录 链接名
示例 1:给可执行文件创建软链接
ln -s /usr/local/mfs/bin/mfsmaster /usr/bin/mfsmaster
效果:
/usr/bin/mfsmaster -> /usr/local/mfs/bin/mfsmaster
执行:
mfsmaster
实际上执行的是真实路径。
示例 2:给目录创建软链接
ln -s /data/mfs /usr/local/mfs
三、软链接 vs 硬链接(重点)
对比项 | 软链接 ln -s | 硬链接 ln |
|---|
是否跨文件系统 | ✅ 支持 | ❌ 不支持 |
是否可对目录 | ✅ 支持 | ❌ 不支持 |
删除源文件 | 链接失效 | 不受影响 |
本质 | 指向路径 | 指向 inode |
✅ 90% 的场景下,都应该用 ln -s
四、软链接的核心特点
1️⃣ 可以跨分区
ln -s /home/user/file /mnt/disk/file
2️⃣ 可以对目录使用
ln -s /opt/app /app
这在 软件版本管理 中非常常见。
3️⃣ 删除源文件后软链接会失效
rm /usr/local/mfs/bin/mfsmaster
再查看:
ls -l /usr/bin/mfsmaster
会看到:
/usr/bin/mfsmaster -> /usr/local/mfs/bin/mfsmaster (broken)
五、如何查看软链接?
1️⃣ ls -l(最常用)
ls -l /usr/bin/mfsmaster
输出:
lrwxrwxrwx 1 root root 27 Apr 12 10:00 mfsmaster -> /usr/local/mfs/bin/mfsmaster
关键点:
2️⃣ readlink
readlink /usr/bin/mfsmaster
六、常见使用场景
✅ 1. 软件版本切换
ln -s /usr/local/mfs-3.0.116 /usr/local/mfs
升级时只需改软链接,无需改配置。
✅ 2. 服务启动脚本
ln -s /usr/local/mfs/sbin/mfsmaster /usr/sbin/mfsmaster
✅ 3. 日志统一管理
ln -s /data/logs/app.log /var/log/app.log
七、常见错误 ⚠️
❌ 源路径写错
ln -s wrong/path linkname
✅ 建议:
尽量使用绝对路径
❌ 忘记 -s
ln a b
这是创建硬链接,不是软链接。
八、一句话总结
✅ ln -s用来创建软链接(符号链接)
✅ 相当于 Windows 的“快捷方式”
✅ 可指向文件或目录,可跨分区
✅ 删除源文件后,软链接会失效