Linux 软链接 与 硬链接 详解
补充: 软、硬链接大部分都是相对于 文件 而言的。在这里我们首先介绍一下 磁盘索引节点 与 内核索引节点,因为这有助于我们全面认识 链接这块知识
2 磁盘索引节点: 对应于每个在磁盘上存储的文件,记录该文件的长度,权限,所属关系以及物理位置等。
内核索引节点:对应于每个打开的文件, 记录了正在打开的文件的各种属性信息。
两者之间的关系是: 当进程打开一个文件,该文件的磁盘节点信息就会被读进内核,然后内核根据它建立相应的内核索引
节点。
定义 硬链接: 指令方式: ln [文件名] [硬链接名] OR ln [文件名列表] [硬链接名]
硬链接就是给目标文件起个别名,不同的文件名对应于同一个磁盘索引节点,每增加一个硬链接 链接数目
就会加1.删除一个硬链接就是删除一个别名而已,不会对目标文件产生影响。
软连接: 指令方式: ln -s [文件名] [软连接名] OR ln [文件名列表] [软链接名]
软链接也叫符号连接,他的别名很明显的说明了他的特性。 创建一个文件包含目标文件的路径名。可以
是任意文件和 目录 。可以连接不同的文件系统。 红色标记的特点是硬连接做不到的。软连接和硬连
接的区别:
总结:
1. 硬连接与目标文件是平等的,通过指令ls -il 指令可以看出 硬链接文件和目标文件的物理大小是一样的, 而软链接不是
的。硬链接 和 目标文件 所指向的是同一个磁盘索引节点, 而软链接和目标文件是不同的个体(可以把软链接理解为一个
指针,硬链接理解为一个别名) 分别指向不同的磁盘索引节点,只是复制了目标文件 的路径名而已。
2.硬链接在目标文件物理位置改变的情况下依然可以作用,但是软链接不行。因为硬链接跟目标文件指向的是同一个磁盘索引
节点,目标文件物理位置变化会同时更新磁盘索引节点,硬链接作用依然有效。软链接在此情况下不能作用,因为软链接
指向的是不同的磁盘索引节点。 硬链接不可以作用目录和不同文件系统的文件链接,而软链接可以。
3.硬链接比较节约内存,因为他们使用的是公共磁盘索引节点,而软链接从来都是自己重新创建个。每当建立一个硬链接,链
接计数值就会增1.而软链接不会产生此效果。