下面是Linux系统软件底层的存储结构,咱们将从底层上来去解释Linux系统下的软硬链接文件node
<一>: 解释(底层)
ide
硬连接,其实从底层数据上来看, 硬连接其实就是增长了一个目录项。底层对应的inode table、数据区中的值是不变的, 也不会从新建立。spa
软连接, 其实从底层接上看, 软连接其实就是至关于从新建立了一个文件,, 不管是目录项,inode table,以及数据区都是从新重建的,而这个文件功能比较特殊, 它是用来指向另一个文件的。blog
<二>:命令的使用图片
硬连接命令:get
ln 用来建立连接 link英文单词的缩写it
ln 默认添加的就是硬连接io
ln 文件名 连接名table
建立3个硬连接,3个硬连接的底层的id号是同样的, 因此这三个文件指向的inode号表示同样的, 建立的文件其实只是在目录项中添加一项。class
软连接命令:
ln -s 文件名 连接名 // 只须要加一个 -s 选项
建立2个软连接,2个软连接的底层的id号是不同的,因此这两个文件底层的对应inode表以及数据块区都是不一样的。
软连接和硬连接的区别
硬连接是不容许跨文件系统创建的
软链接是能够跨文件系统创建的
硬连接是不容许给目录文件创建
软连接是容许给目录文件创建
软连接和硬连接的注意事项:
在创建软连接的时候, 有一个相对的路径的问题
ln -s 原始文件的相对路径(相对于软连接文件的路径) 软连接文件
ln -s 文件名 链接名
若是这里的文件名是相对路径的时候, 这里相对的是连接名所在的目录, 因此你要根据连接名所在的目录, 来从新写文件名所在的路径。
为了防止创建软连接时出错, 文件名要写成绝对路径。这样确定就错不了。