Skip to content

Latest commit

 

History

History
39 lines (23 loc) · 2.41 KB

ln.md

File metadata and controls

39 lines (23 loc) · 2.41 KB
计算机知识
软连接和硬链接

软连接

什么是连接

链接简单说实际上是一种文件共享的方式,是 POSIX 中的概念,主流文件系统都支持链接文件。

连接用来干什么的

可以简单的理解为Windows 中常见的快捷方式

软硬链接的区别是什么

从使用角度上讲,两者没有任何区别,都与正常的文件访问方式一样,支持读写 如果是可执行文件的话,也支持执行

区别在于底层

大家都知道,文件有文件名和数据,在Linux 上这被分成了两部分: 用户数据(user data)和元数据(metadata), 用户数据:即文件数据块,数据块是记录文件真实内容的地方,而元数据则是文件的附加属性,如文件的大小,创建时间,所有者等信息,在linux 中文件的inode号才是文件的唯一标示,而不是文件名。 inode是文件元数据的一部分,但是其并不包含文件名,inode即索引节点号。文件名仅仅是为了方便人们的记忆和使用。系统或者程序通过inode号寻找正确的文件路径。

为了解决文件的共享使用,Linux系统引入了两种连接,硬链接和软连接

硬链接

与普通文件没有什么不同,inode都指向同一个文件在硬盘中的区块 文件具有相同的inode和data block 只能对已经存在的文件进行创建 不能交叉文件系统进行硬链接的创建 不能对目录进行创建 删除一个硬链接文件并不影响其他具有相同inode号的文件 修改一个硬链接文件,具有相同inode号的文件也能感知到,因为他们都指向同一个data block

软连接

软连接与硬链接不同 若文件数据块中存放的内容是另一个文件的路径名指向,则该文件就是软连接,软连接文件与源文件具有不同的inode号。 软连接就是一个普通文件,只是数据块内容有点特殊。 软连接有着自己的inode号以及用户数据块。因此软连接的创建与使用没有类似硬链接的诸多限制。

  • 软连接有着自己的文件属性以及权限
  • 可对不存在的文件或者目录创建软连接
  • 软连接可以交叉文件系统
  • 软连接可以对文件目录进行创建
  • 创建软连接时候,链接计数i_nlink 不会增加
  • 删除软连接并不影响被指向的文件,但是若被指向的源文件被删除,则相关软连接被称为死链接