Linux 软链接(Symbolic Link)介绍
什么是软链接?
在 Linux(及类 Unix)系统中,软链接(Symbolic Link,简称 symlink,有时也叫符号链接)是一种特殊类型的文件,它实际上是指向另一个文件(或目录)的路径引用。
软链接可以理解为 Windows 下的“快捷方式”。对操作系统和应用程序来说,软链接就像目标文件的别名,访问软链接就等价于访问它所指向的目标文件或目录。
软链接和硬链接的区别
| 特点 |
软链接(Symbolic Link) |
硬链接(Hard Link) |
| 作用对象 |
可以链接文件和目录 |
只能链接文件 |
| 跨文件系统 |
可以 |
不能(只能同一文件系统) |
| Inode 信息 |
有自己的 Inode |
共享同一 Inode |
| 删除原文件 |
软链接失效(变成“死链”) |
仍然可以访问,被链接的数据没丢 |
| 命令 |
ln -s |
ln |
| 显示方式 |
ls -l 显示以l 开头,带箭头 |
和普通文件无区别 |
创建软链接
使用 ln -s 命令,基本格式为:
ln -s [原始文件或目录] [软链接名称]
示例一:对文件创建软链接
ln -s /home/user/original.txt shortcut.txt
执行后,在当前目录生成 shortcut.txt,指向 /home/user/original.txt。
示例二:对目录创建软链接
ln -s /var/log /tmp/loglink
/tmp/loglink 就会指向系统的 /var/log 目录。
查看软链接
-
ls -l 显示软链接时,第一列以 l 开头,内容格式一般如下:
lrwxrwxrwx 1 user user 14 Feb 4 09:00 shortcut.txt -> /home/user/original.txt
-
用 readlink 或 realpath 查看软链接实际指向的位置:
readlink shortcut.txt
realpath shortcut.txt
删除软链接
使用 rm 删除软链接文件本身,不影响目标文件内容:
rm shortcut.txt
注意:只会删除链接,不会删除原文件。
软链接的实际应用场景
- 为配置文件建立统一入口(如
/etc/nginx/nginx.conf 链接到 /usr/local/nginx/conf/nginx.conf)
- 方便管理多个软件版本,如
/usr/bin/python 软链接到具体的 Python 解释器
- 实现用户目录自定义扩展,如把家目录下目录链接到外部磁盘、云盘
- 制作网站静态资源目录的别名,便于部署等
常见注意事项
- 如果软链接指向的目标被删除或移动,软链接就会失效,变成“死链”,再访问时会出错。
- 软链接支持跨分区或设备,无论目标文件在哪里。
- 软链接自身只是一个特殊文件,占用很小的存储空间。
参考资料