1.概述
为了方便用户访问文件,Linux提供了一种称为连接(link)的机制,可以将一个文件或目录与另一个文件或目录建立关联,从而实现多个路径指向同一个文件或目录的效果。
为了方便用户访问文件,Linux提供了一种称为连接(link)的机制,可以将一个文件或目录与另一个文件或目录建立关联,从而实现多个路径指向同一个文件或目录的效果。
Linux中的连接分为两种类型:硬链接(hard link)和软链接(symbolic link)。本文将详细介绍这两种类型的连接的特点、用法和区别。
- 硬链接是指在同一个文件系统中,将一个文件名关联到一个已经存在的文件上,使得该文件名也可以访问该文件。硬链接与原文件共享inode,即它们有相同的inode号和相同的device号。因此,对于硬链接和原文件来说,它们的访问权限、所有者、大小等属性都是相同的。硬链接只能在同一个分区内创建,不能跨越不同的文件系统。
- 软链接(也称符号链接)是指在不同的文件系统之间,将一个文件名关联到另一个文件上,使得该文件名也可以访问该文件。软链接与原文件不共享inode,它们有不同的inode号和device号。因此,对于软链接和原文件来说,它们的访问权限、所有者、大小等属性可能不同。软链接可以跨越不同的分区和文件系统创建。
2.创建
- 硬链接
在Linux系统中,可以使用
ln命令来创建硬链接。例如,如果要为文件file1创建一个硬链接file2,可以执行以下命令:这样,就会在当前目录下生成一个名为
file2的硬链接,它和file1指向同一个数据块。可以使用ls -li命令来查看文件的inode号和硬链接数。例如:- 软链接
在Linux系统中,可以使用
ln -s命令来创建软链接。例如,如果要为文件file1创建一个软链接file3,可以执行以下命令:这样,就会在当前目录下生成一个名为
file3的软链接,它指向了file1所在的路径。可以使用ls -l命令来查看文件类型和链接目标。例如:3.删除
- 硬链接
在Linux系统中,可以使用
rm命令来删除硬链接。例如,如果要删除file2这个硬链接,可以执行以下命令:这样,就会删除
file2这个文件名,但是不会影响file1或者该数据块。只有当所有指向该数据块的文件名都被删除时,该数据块才会被释放。例如:这样,就会删除
file1这个文件名,并且释放该数据块。- 软链接
在Linux系统中,可以使用
rm命令来删除软链接。例如,如果要删除file3这个软链接,可以执行以下命令:这样,就会删除
file3这个文件名,但是不会影响file1或者其所在的路径。只有当原文件被移动或删除时,软链接才会失效。例如:这样,就会移动
file1到另一个位置,并且使得file3无法找到正确的路径。4.优缺点及使用场景
硬链接
- 硬链接有以下一些优点:
- 硬链接可以节省存储空间,因为它们不占用额外的数据块。
- 硬链接可以保护文件免受意外删除,因为只有当所有指向该数据块的文件名都被删除时,该数据块才会被释放。
- 硬链接可以提高文件访问效率,因为它们不需要额外的查找过程。
- 硬链接也有以下一些缺点:
- 硬链接不能跨越不同的文件系统,因为不同的文件系统可能有不同的inode分配方式。
- 硬链接不能用于目录,因为这样会导致目录结构的混乱和循环引用。
- 硬链接不能反映原文件的变化,例如修改时间和权限等。
- 硬链接适合用于以下一些场景:
- 当需要为同一个文件创建多个别名时,可以使用硬链接。
- 当需要保护重要文件免受意外删除时,可以使用硬链接。
- 当需要提高频繁访问文件的效率时,可以使用硬链接。
软链接
- 软链接有以下一些优点:
- 软链接可以跨越不同的文件系统,因为它们只存储了路径信息,而不依赖于inode号。
- 软链接可以用于目录,因为它们不会导致目录结构的混乱和循环引用。
- 软链接可以反映原文件的变化,例如修改时间和权限等。
- 软链接也有以下一些缺点:
- 软链接会占用额外的存储空间,因为它们需要单独的数据块来存储路径信息。
- 软链接可能会失效,因为当原文件被移动或删除时,软链接无法找到正确的路径。
- 软链接可能会降低文件访问效率,因为它们需要额外的查找过程。
- 软链接适合用于以下一些场景:
- 当需要为不同位置或不同文件系统的文件或目录创建快捷方式时,可以使用软链接。
- 当需要创建动态的文件或目录关联时,可以使用软链接。
- 当需要保留原文件的属性和变化时,可以使用软链接。
Ref.
- 作者:墨羽
- 链接:https://blog.pigcyan.com/article/hard-and-symbolic-link
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章











