Linux 软硬连接详解
目录
一、软链接(Symbolic Link)
定义与特性
实现方法使用 ln -s 命令:
二、硬链接(Hard Link)
1、是什么
2、工作机制
3、实现方式
一、软链接(Symbolic Link)
-
定义与特性
-
定义:软链接是一个独立的文件,拥有自己的 inode 和属性,其内容存储目标文件/目录的路径字符串,类似于 Windows 的快捷方式。
-
特性
- 可跨文件系统或分区创建。
- 删除目标文件后,软链接将失效(类似“断链”)。
- 支持对目录创建软链接。
-
实现方法
使用ln -s
命令:
# 创建指向文件或目录的软链接
ln -s <目标路径> <软链接名称>
二、硬链接(Hard Link)
1、是什么
硬链接本质是 同一个文件实体在文件系统中的多入口映射。通过硬链接创建的新文件名与原始文件共享相同的 inode(索引节点)和数据块,相当于给同一份数据赋予了多个访问别名。
2、工作机制
-
inode 共享机制
所有硬链接文件与原始文件共用同一个 inode 编号,操作系统通过 inode 直接定位磁盘数据。新增硬链接时仅增加 inode 的 硬链接计数(可通过ls -l
第二列查看)。 -
数据一致性
任意硬链接文件的修改都会同步到所有关联文件(包括原始文件),因为它们本质是同一物理数据的不同访问路径。 -
删除逻辑特殊性
- 删除任一硬链接仅减少 inode 的链接计数,只有当链接计数归零时,系统才会真正释放磁盘空间
- 这意味着即使删除原始文件名,只要存在其他硬链接,文件内容仍可通过剩余链接访问
3、实现方式
# 创建硬链接
ln <目标文件> <硬链接名称>
--------------------------------------------------------------------------------------------------------------------------------
软硬连接讲解到此,如还有不理解,可以看看前面 inode 的讲解