下面是Linux系统软件底层的存储结构,我们将从底层上来去解释Linux系统下的软硬连接文件

Linux软链接和硬链接文件_软链接

<一>: 解释(底层)

硬链接,其实从底层数据上来看, 硬链接其实就是增加了一个目录项。底层对应的inode table、数据区中的值是不变的, 也不会重新创建。

软链接, 其实从底层接上看, 软链接其实就是相当于重新创建了一个文件,, 无论是目录项,inode table,以及数据区都是重新重建的,而这个文件功能比较特殊, 它是用来指向另外一个文件的。

<二>:命令的使用

硬链接命令:

ln    用来创建链接  link英文单词的缩写

ln  默认添加的就是硬链接

ln 文件名 链接名

Linux软链接和硬链接文件_软链接_02

创建3个硬链接,3个硬链接的底层的id号是一样的, 所以这三个文件指向的inode号表示一样的, 创建的文件其实只是在目录项中添加一项。


软链接命令:

ln -s 文件名  链接名  //  只需要加一个 -s 选项

Linux软链接和硬链接文件_硬链接_03

创建2个软链接,2个软链接的底层的id号是不一样的,所以这两个文件底层的对应inode表以及数据块区都是不同的。


软链接和硬链接的区别

硬链接是不允许跨文件系统建立的

软连接是可以跨文件系统建立的

硬链接是不允许给目录文件建立

软链接是允许给目录文件建立


软链接和硬链接的注意事项:

在建立软链接的时候, 有一个相对的路径的问题

ln -s 原始文件的相对路径(相对于软链接文件的路径) 软链接文件

ln -s 文件名  连接名

如果这里的文件名是相对路径的时候, 这里相对的是链接名所在的目录, 所以你要根据链接名所在的目录, 来重新写文件名所在的路径。

为了防止建立软链接时出错, 文件名要写成绝对路径。这样肯定就错不了。