Linux软硬链接详解
Linux软硬链接详解
1. 概述
1.1 软链接(符号链接)
- 类比:类似于Windows中的快捷方式。
- 本质:是一个特殊文件,内容为源文件的路径(位置+文件名)。
- 特点:
- 可跨文件系统/分区。
- 可对文件和目录创建。
- 源文件删除后,软链接失效(显示红底白字闪烁)。
1.2 硬链接
- 本质:同一分区中多个文件名指向同一个inode,互为硬链接。
- 特点:
- 仅限文件,不能对目录创建。
- 不能跨分区。
- 删除硬链接或源文件不影响其他硬链接。
2. 创建方法
2.1 软链接创建
1 | ln -s 源文件 软链接文件名 |
示例:
1 | # 创建源文件 |
绝对路径软链接:
1 | ln -s /path/to/source /path/to/link |
2.2 硬链接创建
1 | ln 源文件 硬链接文件名 |
示例:
1 | ln xiao.txt xiao_hard |
3. 核心区别
特性 | 软链接 | 硬链接 |
---|---|---|
本质 | 存储源文件路径的独立文件 | 与源文件共享inode的多个文件名 |
跨分区 | 支持 | 不支持 |
目录支持 | 支持 | 不支持 |
源文件删除 | 软链接失效(红底白字闪烁) | 不影响其他硬链接 |
文件大小 | 软链接文件大小=路径字符长度 | 硬链接与源文件大小相同 |
inode号 | 与源文件不同 | 与源文件相同 |
4. 使用场景
4.1 软链接适用场景
- 需要跨分区或文件系统引用文件/目录。
- 为目录创建快捷访问路径。
- 动态链接库文件(如
/usr/lib
中的库文件)。
4.2 硬链接适用场景
- 需要多个文件名指向同一文件数据(如备份或日志轮转)。
- 确保文件删除后数据仍可通过其他硬链接访问。
5. 注意事项
- 软链接路径:
- 推荐使用绝对路径,避免移动源文件后链接失效。
- 硬链接限制:
- 不能对目录或跨分区文件创建硬链接。
- 删除影响:
- 删除软链接:
rm 软链接名
(不影响源文件)。 - 删除硬链接:仅减少inode引用计数,数据未真正删除直至所有硬链接被移除。
- 删除软链接:
6. 示例验证
6.1 软链接操作
1 | # 创建源文件并写入内容 |
6.2 硬链接操作
1 | # 创建硬链接 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 RHCloudOps博客!
评论