linux硬链接与软连接

Linux版本控制 专栏收录该内容
2 篇文章 0 订阅

   linux通过链接来为文件向用户程序提供多个入口,Linux链接有两种:一种称为硬链接(Hard Link),另一种称为符号链接(Symbolic Link),也常被称为软链接,默认情况下,ln命令产生硬链接。硬链接通过索引节点(inode)进行链接,这样多个文件名指向同一个索引节点,也就使得一个文件可以拥有多个有效的路径名;需要删除全部的链接才会将inode对应的数据块真正删除,硬链接有以下特性

      1.不能对目录创建硬链接

      2.硬链接只能正对同样的文件系统来创建

      3.删除一个硬链接文件并不影响其他相同的inode文件

     4.文件有相同的inode以及数据块

   在linux中文件是有元数据与文件数据块组成,文件数据块是记录文件内容的地方,而元数据则是文件的一些属性信息,包括文件大小,创建时间,所有者信息,在linux中通过inode来确立文件的唯一性,而不是文件名,系统通过inode来管理文件数据。

inode可以通过ls -i查看,用stat可以查看文件元数据其他信息,包括inode

$ stat buildspec.mk
  File: buildspec.mk
  Size: 4213          Blocks: 16         IO Block: 4096   regular file
Device: 806h/2054d    Inode: 8728177     Links: 1
Access: (0444/-r--r--r--)  Uid: ( 1000/   imbak)   Gid: ( 1000/   imbak)
Access: 2018-12-26 09:45:12.215003200 +0800
Modify: 2018-12-24 21:14:05.255793076 +0800
Change: 2018-12-24 21:14:05.255793076 +0800

linux引入硬连接(hard link) 与软连接(soft link),为的是解决文件共享问题,连接为linux解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储的好处。若一个inode对应多个文件名,则称这些文件为硬连接,也就是说同一个文件使用了多个名字,硬链接可以由命令link或ln创建,通过对buildspec.mk进行link (link buildspec.mk new.mk) 操作,可以发现两个文件的的inode相同。

$ stat new.mk
  File: new.mk
  Size: 4213          Blocks: 16         IO Block: 4096   regular file
Device: 806h/2054d    Inode: 8728177     Links: 2
Access: (0444/-r--r--r--)  Uid: ( 1000/   imbak)   Gid: ( 1000/   imbak)
Access: 2018-12-26 09:45:12.215003200 +0800
Modify: 2018-12-24 21:14:05.255793076 +0800
Change: 2018-12-26 17:51:26.448845043 +0800
 Birth: -
$ stat buildspec.mk
  File: buildspec.mk
  Size: 4213          Blocks: 16         IO Block: 4096   regular file
Device: 806h/2054d    Inode: 8728177     Links: 2
Access: (0444/-r--r--r--)  Uid: ( 1000/   imbak)   Gid: ( 1000/   imbak)
Access: 2018-12-26 09:45:12.215003200 +0800
Modify: 2018-12-24 21:14:05.255793076 +0800
Change: 2018-12-26 17:51:26.448845043 +0800
 Birth: -

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

      1.软链接有自己的文件属性及权限等;

       2.可对不存在的文件或目录创建软链接;

      3.软链接可交叉文件系统;

      4.软链接可对文件或目录创建;

      5.创建软链接时,链接计数i_nlink不会增加;

      6.删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关的软链接被称为死链接

 

 

  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值