编辑
2024-03-26
TechNotes
00

目录

1. 硬链接(Hard Link)
特点
创建硬链接
硬链接示例
优缺点
2. 软链接(Symbolic Link)
特点
创建软链接
软链接示例
优缺点
3. 硬链接和软链接的区别
4. 使用场景

在Linux文件系统中,软链接(Symbolic Link)和硬链接(Hard Link)是指向文件的两种不同方式,它们有各自的用途和特点。

image.png

连接更像windows中的快捷方式 软链接与Windows快捷方式的相似性

  • 指向目标文件或目录:软链接和Windows的快捷方式都是指向另一个文件或目录的位置,而不是文件或目录本身的数据。
  • 独立文件:两者都是独立的文件,存储的内容实际上是指向目标文件或目录的路径信息。
  • 路径解析:当你访问软链接或快捷方式时,操作系统会解析并跳转到目标文件或目录。
  • 断链问题:如果目标文件或目录被删除、移动或重命名,软链接和快捷方式都会变成“断链”,指向无效路径,导致无法访问。

1. 硬链接(Hard Link)

特点

  • 文件系统级别:硬链接是文件系统中的一个文件条目,直接指向数据块。它是指向文件数据的一个“指针”。
  • 共用inode:硬链接和原始文件共享相同的inode号(文件索引节点)。每个硬链接都会增加文件的链接计数。
  • 文件内容相同:硬链接文件和原文件的数据完全相同,修改其中一个文件,另一个文件的内容也会随之改变。
  • 无法链接目录:出于安全和文件系统一致性的考虑,硬链接不能链接到目录。
  • 同一文件系统:硬链接只能在同一文件系统中创建,不能跨文件系统。
  • 文件删除影响:只有当最后一个硬链接被删除时,文件的实际数据才会从磁盘上移除。

创建硬链接

使用ln命令,不加选项直接创建硬链接:

bash
ln source_file hard_link_name

硬链接示例

bash
$ ln file1 file1_hardlink
  • file1file1_hardlink共享相同的inode号,任何一个文件的更改都会反映在另一个文件中。

优缺点

  • 优点:占用的存储空间少,因为硬链接只是创建一个新的文件目录项,指向相同的文件数据。
  • 缺点:无法跨文件系统,且不能创建目录的硬链接。

2. 软链接(Symbolic Link)

特点

  • 路径级别:软链接是一个独立的文件,包含指向另一个文件或目录的路径,它指向文件或目录的位置,而不是数据本身。
  • 不同inode:软链接文件有自己的inode,与原文件的inode不同。
  • 符号化:软链接相当于一个快捷方式,指向目标文件或目录。删除软链接文件,不影响目标文件;删除目标文件,软链接会变为“断链”(指向无效路径)。
  • 可链接目录:软链接可以指向目录,也可以指向不同文件系统中的文件或目录。
  • 跨文件系统:可以跨越不同的文件系统创建软链接。

创建软链接

使用ln命令,带-s选项创建软链接:

bash
ln -s target_file symbolic_link_name

软链接示例

bash
$ ln -s /home/user/file1 /home/user/file1_symlink
  • /home/user/file1_symlink指向/home/user/file1,但它们的inode号不同。软链接文件本身是一个指向/home/user/file1路径的文本文件。

优缺点

  • 优点:灵活性高,可以跨文件系统,且可以链接目录。
  • 缺点:如果目标文件被删除或移动,软链接将无法访问有效数据,导致断链。

3. 硬链接和软链接的区别

特性硬链接 (Hard Link)软链接 (Symbolic Link)
Inode共享相同的inode号有自己独立的inode号
指向指向相同的数据块指向目标文件或目录的路径
文件系统限制只能在同一文件系统中创建可以跨文件系统创建
目录链接不能指向目录可以指向目录
空间占用占用极少的空间占用少量空间(存储路径信息)
删除影响删除其中一个硬链接,不影响其他硬链接删除目标文件,软链接失效
速度访问速度快,因为硬链接直接指向数据块访问速度稍慢,需要解析路径
用途主要用于备份或多次访问相同数据文件主要用于创建快捷方式或引用外部文件/目录

4. 使用场景

  • 硬链接适合在相同文件系统中需要多次访问同一数据的场景,例如版本控制、备份等。
  • 软链接适合创建快捷方式,链接到不同文件系统的文件或目录,或者需要链接目录的场景。

总结来说,硬链接更适合需要文件数据备份或版本控制的场景,而软链接则更灵活,适合创建指向文件或目录的快捷方式,尤其在不同文件系统之间或需要链接目录时。

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:GYC

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!