Linux的软链接与硬链接

文件系统:

Linux上文件分为:用户数据(user data, 文件数据块(data block):记录文件真实内容的地址)和元数据(meta data,文件附加属性(文件大小、创建时间、所有者)inode号,文件索引节点号,文件唯一标识符而非文件名,系统和程序通过inode号寻找正确的文件数据块)。[查看inode号可以使用 stat 或ls - i]

 

 

硬链接和软链接(又称符号链接):解决文件的共享使用。[ls -li] <https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/index.html>

硬链接:一个inode号对应多个文件名,这些文件成为硬链接,即硬链接是同一个文件的别名。[link/ln oldfile newfile]

由于硬链接是有着相同 inode 号仅文件名不同的文件,因此硬链接存在以下几点特性:

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

软链接:用户数据中存在另一文件的路径,是一个普通文件,又自己的inode号和用户数据块。

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

 

 

posted @ 2019-03-06 12:13  雨婷墨染  阅读(192)  评论(0编辑  收藏  举报