| 项目 | 值 |
|---|---|
| 硬链接 | 多个文件名指向同一个 inode(同一文件实体) |
| 软链接 | 新文件中存储目标文件的路径名(快捷方式) |
| 删除原文件 | 硬链接不受影响(inode 引用计数 > 0),软链接失效(悬空指针) |
| 跨文件系统 | 硬链接不能跨文件系统,软链接可以 |
ln 命令创建:ln source targetln -s 命令创建:ln -s source target# 硬链接:两个名字共享同一 inode
ln file.txt hard_link.txt
ls -i file.txt hard_link.txt # 两者 inode 号相同
# 软链接:新建一个独立 inode,内容存路径名
ln -s file.txt soft_link.txt
ls -l soft_link.txt # soft_link.txt -> file.txt
| 对比项 | 硬链接 | 软链接 |
|---|---|---|
| 本质 | 多个文件名 → 同一 inode | 新文件存储目标路径 |
| inode | 共享同一 inode | 有独立 inode |
| 引用计数 | 增加 link count | 不影响原文件 link count |
| 删除原文件 | 不受影响(计数 > 0) | 失效(悬空指针) |
| 跨文件系统 | 不能 | 可以 |
| 链接目录 | 通常不允许 | 可以 |
| 存储空间 | 不额外占用 | 占用(存储路径名) |
| 考法 | 解题套路 |
|---|---|
| 硬链接 vs 软链接 | 硬链接共享 inode,软链接存储路径名 |
| 删除原文件后 | 硬链接仍可用(link count > 0),软链接失效 |
| 引用计数 | 硬链接增加 link count,创建文件时 $count=1$ |
| 跨文件系统 | 硬链接不能跨,软链接可以跨 |
↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。