首页 > 代码库 > 硬链接和软连接(符号链接)

硬链接和软连接(符号链接)

硬链接:不同路径的文件指定的是同一个inode
硬链接不能跨分区存在
硬链接不能链接到目录(要避免循环引用)
删除硬链接只会减少文件被硬链接的次数,源文件不会动.

软链接:是一个独立的文件,有自己独立的inode,引用的是路径本身,不是inode
删除软链接,跟源文件没任何关系
软链接没有存储任何数据,只是存储了访问文件的另一种路径.
软链接可以对目录创建,也可以跨分区
源文件被删除,软连接将不可用.
如果有什么不懂的话可以去看看《Linux就该这么学》这本书,非常适合新手学习Linux。



在实际应用中硬链接和符号链接(即软链接)很难区分,但两者的确是有区别的:

#1.硬链接, 只能应用于文件,而不能应用于目录,而且不能跨文件系统(即分区)。
#2.符号链接,可以应用于文件,而且可以应用于目录和可跨文件系统(分区)。这是两者在应用上的区别。

#3底层的区别:
当创建了一个文件的硬链接时,硬链接会使用和文件相同的inode号,此时原来的文件的inode连接数由最初的1变为了2,实际上硬链接和文件使用了相同的inode,
只不过是inode连接数增加了,删除文件不会影响硬链接,硬链接的inode数会从2变为1。

而在创建文件的软链接时,软链接会使用一个新的inode,所以软链接的inode号和文件的inode号不同,软链接的inode里存放着指向文件的路径,
删除文件,软链接也无法使用了,因为文件的路径不存在了。当再次创建这个文件时(文件名与之前的相同),软链接又会重新指向这个文件(inode号与之前的不同了),而硬链接不会受其影响。

硬链接和软连接(符号链接)