在 CentOS(以及其它 Linux 发行版)中,**软连接(符号链接,symbolic link)和硬链接(hard link)**是常见的“链接”方式,很多人说的“CentOS 软连接有什么区别”,通常是指:
软连接和硬连接有什么区别?
或
软连接和普通文件/目录有什么区别?
下面用通俗方式说明。
本质:软连接是一个「快捷方式」
它里面保存的是另一个文件或目录的路径
ln -s /var/www/html /mnt/html
/mnt/html 是软连接/var/www/html✅ 可以跨文件系统
✅ 可以指向目录
✅ 可以指向不存在的文件
❌ 原文件删除后,软连接失效(断链)
本质:硬链接是同一个文件的不同名字
ln file.txt file2.txt
file.txt 和 file2.txt 指向同一个 inode✅ 删除一个文件名,文件仍然存在
❌ 不能跨文件系统
❌ 不能对目录创建硬链接(防止循环)
| 对比项 | 软连接 | 硬链接 |
|---|---|---|
| 本质 | 路径指针 | 同一文件 |
| 跨文件系统 | ✅ 支持 | ❌ 不支持 |
| 指向目录 | ✅ 支持 | ❌ 不支持 |
| 原文件删除 | 失效 | 仍可用 |
| inode | 不同 | 相同 |
| 大小 | 存路径 | 原文件大小 |
ln -s /opt/app/logs /var/log/app
常用于:
ls -l
示例:
lrwxrwxrwx 1 root root 10 Mar 1 10:00 html -> /var/www
开头 l 表示软连接
rm /mnt/html
⚠️ 不要加 /,否则可能误删原目录
ls -Z
软连接 = 快捷方式(可跨盘、可指目录)
硬链接 = 文件别名(同盘、同文件)
如果你是想问:
可以告诉我具体场景,我可以针对性讲。