Linux系统中,软硬链接的区别

在Linux系统中,有两种链接方式,分别为硬链接和软连接,今天,我们来介绍下软硬链接都有什么区别?

一、创建方式

硬链接:ln 源文件 链接文件

软链接:ln -s 源文件 链接文件

Linux系统中,软硬链接的区别

从创建好的软硬链接可以看到几个信息:

1.软硬链接文件的大小不同。

2.文件的权限不同。

3.文件的硬链接数不同。

4.文件类型不同。

5.inode号码不同。

可以看到,硬链接文件和源文件具有相同的inode号码,而软链接文件具有不同的inode号码,可以理解为,硬链接其实是给硬盘中储存的数据又开了一个门,它和源文件都具有相同的inode号码,具有相同的文件属性信息,指向的是同一段block内容。软链接和源文件inode信息不同,软链接文件指向的是源文件,相当于是源文件的快捷方式。可以用下面的示意图表示。

Linux系统中,软硬链接的区别

 

从这个特性就可以看出,如果我删除源文件,硬链接文件不受影响,因为他还是可以指向文件信息。但是软链接指向的是源文件,删除源文件后,软链接不能再访问到文件内容。

Linux系统中,软硬链接的区别

 

从这一点其实也可以说,源文件和硬链接文件,其实是互为硬链接的。 

 Linux系统中,软硬链接的区别

 

 同时,目录文件是不能创建硬链接的。但是当你成功创建出一个目录时,它的硬链接数都不会是1。

Linux系统中,软硬链接的区别

这是因为,当你成功创建出一个目录后,它就自动再该目录下,生成了一个本级目录

Linux系统中,软硬链接的区别

它与你创建出的目录具有相同的inode。当你再在这个目录下创建一个子目录时,子目录中自动生成一个父目录(),其与上级目录又具有相同的inode号码。

Linux系统中,软硬链接的区别

因此,虽然说目录不能直接创建硬链接,但是目录的硬链接数从来不会为1。

 

因技术不断更新,同时个人知识水平有限,博客内容可能根据作者理解不同不断更新,最新博客内容地址https://i.cnblogs.com/yangcotuan,欢迎访问。

上一篇:文件IO


下一篇:3 shell cli