1.区别
| 特性 | 硬链接 (Hard Link) | 软链接 / 符号链接 (Soft/Symbolic Link) |
|---|---|---|
| 本质 | 指向文件在磁盘上的物理数据块(相同的 inode 号)。 | 指向原文件的路径(是一个独立的文件,有自己的 inode)。 |
| 跨文件系统 | 不支持(只能在同一个分区/文件系统内创建)。 | 支持(可以跨分区、跨磁盘)。 |
| 目录链接 | 不允许链接到目录(防止文件系统循环)。 | 可以链接到目录。 |
| 原文件删除后 | 链接依然有效(只要还有一个硬链接存在,数据就不会丢)。 | 链接失效(变成"死链接",因为原路径不存在了)。 |
| 文件大小 | 与原文件完全一致(因为是同一个文件)。 | 非常小(仅包含原文件的路径字符串长度)。 |
不管是软链接还是硬链接,修改文件内容时,源文件内容都发生改变。
2.创建
1.创建硬链接
bash
# 创建一个名为 original.txt 的文件
echo "Hello World" > original.txt
# 创建硬链接
ln original.txt hard_link.txt
2.创建软链接
bash
# 创建软链接
ln -s original.txt soft_link.txt