软连接与硬链接

linux中链接包括两种类型:软链接和硬链接。两者的区别如下:

  • 硬链接和对应的链接源文件指向同一个inode,通过ls -i命令查看可发现两者的inode节点值相同。

       软链接和对应的链接源文件的inode节点值不同,软链接其实指向的是对应的链接源文件,不是直接指向原始inode数据,两者指向不同的数据块。

通过文件大小可以看到,源文件test1.txt、硬链接文件test2.txt的大小均为0,因为没有写入任何数据。而软链接文件test3.txt大小为9字节,即它的源文件名“test1.txt”大小(sizeof("test1.txt")=9)

  • 硬链接其实相当于建立一系列文件名和实际文件数据inode的对应映射关系,各个文件名和inode的映射相互独立,互不影响。删除任意一个文件,其他硬链接文件仍然可以正常映射到对应的inode,正常读写,其实此时该文件没有真正删除。只有当所有的源文件、硬链接文件都删除,对应的文件才是真正意义上的删除。

      软链接指向的是它的源文件内容,完全依赖它的源文件(类似于windows下的快捷方式)。当删除源文件时,关联的软链接文件将不可能

做如下测试:

向源文件写入数据:

此时删除源文件,并再次读取硬链接文件test2.txt、软链接文件test3.txt

发现硬链接文件test2.txt仍然可以正常读取,而软链接文件test3.txt已不存在,报错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值