在 CentOS(以及大多数 Linux 文件系统)中,软链接(symbolic link,也叫 symlink)本身几乎不占用实际数据空间,但会占用一点点 inode 元数据空间。
下面分情况说明:
ln -s /var/log/test.log test_link
查看大小:
ls -lh test_link
输出类似:
lrwxrwxrwx 1 root root 15 Oct 10 10:00 test_link -> /var/log/test.log
这里的 15 是 目标路径字符串长度,不是文件内容大小。
ls -l
显示的大小是:
软链接指向的路径字符串长度(字节)
例如:
test_link -> /var/log/test.log
路径长度 = 15 字节 → 显示为 15
⚠️ 这不是真正的磁盘占用空间。
| 项目 | 是否占用空间 |
|---|---|
| 软链接本身 | ✅ 极少量(inode) |
| 目标文件 | ✅ 正常占用 |
| 删除软链接 | ❌ 不影响目标文件 |
| 删除目标文件 | ✅ 软链接变成“悬空链接” |
| 对比项 | 软链接 | 硬链接 |
|---|---|---|
| 是否占用 inode | ✅ 是 | ❌ 否 |
| 是否跨文件系统 | ✅ 可以 | ❌ 不可以 |
| 原文件删除 | ❌ 失效 | ✅ 仍可用 |
| 本质 | 路径指针 | 文件别名 |
查看 inode 使用:
df -i
查看目录占用(不含软链接指向内容):
du -sh --apparent-size
CentOS 中的软链接不占用实际数据空间,只占用一个 inode 元数据,几乎可以忽略不计。
如果你担心的是 磁盘空间、inode 耗尽、Docker/构建环境优化,可以告诉我具体场景,我可以帮你进一步分析。