一、概念
硬链接: 硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。硬链接的作用之一是允许一个文件拥有多个有效路径名,这样用户就可以建立硬链接到重要的文件,以防止"误删"源数据 。如果删除了其中一个,对另外一个没有影响。每增加一个文件名,索引节点上的链接数增加一,每删除一个对应的文件名,索引节点上的链接数减一,直到为0,索引节点和对应的数据块被回收。 符号链接(软链接): 与硬链接不同的是软链接会创立一个独立的文件,软链接文件目录中的节点与原文件目录中的节点是不相同的,指向的不同的数据块,可以根据软链接文件找到原文件的目录项。软链接文件和原文件是“主从关系”,如果原文件被删除后,软链接文件依旧存在,但指向的是一个无效的链接。
二、区别
硬链接:
- 使用不带选项-s的ln命令创建
- 不能对目录创建硬链接,原因有几种,最重要的是:文件系统不能存在链接环(目录创建时的"…"除外,这个系统可以识别出来),存在环的后果会导致例如文件遍历等操作的混乱
- 只能在与源文件相同的文件系统、分区和挂载设备上创建,不可跨文件系统
- 具有硬链接关系的两个文件名指向的是硬盘上的同一块存储空间
- 删除硬链接的任何一方文件后,另一方文件仍然有效
- 不能对不存在的文件创建硬链接
软链接:
- 使用带选项-s的ln命令创建
- 针对文件和目录均可建立软链接
- 一个文件(或目录)指向另外一个文件(或目录)的文件名(或目录名),类似于Windows系统中的快捷方式
- 删除源文件或目录后,软链接文件或目录无效
- 可跨越不同的文件系统、分区和挂载设备创建
- 可以对不存在的文件创建软链接
三、相同点
- 对任何一方的内容进行修改都会影响到另一方
- 链接文件都不会将源文件复制一份,只会占用非常少量的用于存储链接信息的存储空间
四、如何创建
硬链接语法格式:ln 源文件 链接名 软链接语法格式:ln -s 原文件 链接名(需要写绝对路径)
创建软硬链接:
删除原文件:
|