Linux系统的硬链接和软链接

        硬连接与软连接是 Linux 文件系统中的一个重要概念,其涉及文件系统中的索引节点 (index node 又称 inode),而索引节点对象是 Linux 虚拟文件系统 (VFS) 的四个基本概念之一。node

一、硬链接linux

       为解决文件的共享使用,Linux 系统引入了两种连接:硬连接 (hard link) 与软连接(又称符号连接,即 soft link 或 symbolic link)。连接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增长权限安全及节省存储等好处。若一个 inode 号对应多个文件名,则称这些文件为硬连接。换言之,硬连接就是同一个文件使用了多个别名(见 图 2.hard link 就是 file 的一个别名,他们有共同的 inode)。硬连接可由命令 link 或 ln 建立。以下是对文件 oldfile 建立硬连接。安全

link oldfile newfile 
 ln oldfile newfile

因为硬连接是有着相同 inode 号仅文件名不一样的文件,所以硬连接存在如下几点特性:spa

  • 文件有相同的 inode 及 data block;
  • 只能对已存在的文件进行建立;
  • 不能交叉文件系统进行硬连接的建立;
  • 不能对目录进行建立,只可对文件建立;
  • 删除一个硬连接文件并不影响其余有相同 inode 号的文件。

 

       软连接与硬连接不一样,若文件用户数据块中存放的内容是另外一文件的路径名的指向,则该文件就是软链接。软连接就是一个普通文件,只是数据块内容有点特殊。软连接有着本身的 inode 号以及用户数据块(见 图 2.)。所以软连接的建立与使用没有相似硬连接的诸多限制:对象

  • 软连接有本身的文件属性及权限等;
  • 可对不存在的文件或目录建立软连接;
  • 软连接可交叉文件系统;
  • 软连接可对文件或目录建立;
  • 建立软连接时,连接计数 i_nlink 不会增长;
  • 删除软连接并不影响被指向的文件,但若被指向的原文件被删除,则相关软链接被称为死连接(即 dangling link,若被指向路径文件被从新建立,死连接可恢复为正常的软连接)。
图 2. 软连接的访问

图 2. 软连接的访问

待续。。。。。。。。。。。索引

相关文章
相关标签/搜索