操作系统/Linux - 文件 - 软链接/符号链接和硬链接(文件共享)

参考王道考研操作系统

操作系统/Linux - 文件 - 软链接/符号链接和硬链接(文件共享)

文件共享 - 软链接和硬链接

文件共享

  • 硬链接 - 基于索引结点的共享方式
  • 软链接 - 基于符号链的共享方式

软链接(符号链接)

类似于Windows的快捷方式,但又不完全一样

Linux 创建软链接
ln -s 原文件名 软链接文件名
  1. 创建一个软链接testfile.soft指向testfile

  2. 使用ls -l命令看到文件名为蓝色且有箭头指向的就是软链接

  3. 任何用户创建的软链接默认都是所有人拥有所有权限lrwxrwxrwx,文件类型是l(link)

    image-20210511170633901
特点

Windows图示仅作为参考理解

查找方式:软链接 -> 被链接文件 -> 索引结点

  1. 被链接文件可以是目录文件,也可以是普通文件

    image-20210511164606593 image-20210511172138350
  2. 包含被链接文件的路径名

    image-20210511170110397 image-20210511172759936
  3. 被链接文件被删除后,会出现访问失败,于是将软链接删除,此时不会产生任何影响

    image-20210511171625737 image-20210511173820774

注:

  1. 该方式需要根据文件路径名逐个地查找目录,直至找到该文件的索引结点,导致访问文件的开销变大并增加了启动磁盘的频率
  2. 符号链的索引结点也要耗费一定的磁盘空间
  3. 建立符号链接时,文件的引用计数值直接复制,文件删除时,符号链接的引用计数值不变
  4. 软链接文件占用一定的少量存储空间

硬链接(索引结点)

image-20210511181146578
特点

查找方式:硬链接 -> 索引结点 -> 文件内容

  1. 文件目录中只设置文件名及指向相应索引结点的指针
  2. 索引结点中存放文件的物理地址及其他的文件属性等信息
  3. count - 链接计数
    1. count = 2时表示有两个用户目录项链接到本文件上
    2. 删除时,只是将count - 1,并删除自己目录中相应的目录项(硬链接),而不是直接删除文件内容
    3. count = 0,表示没有用户使用该文件,系统负责删除该文件
Linux 创建硬链接
ln 原文件名 硬链接文件名
  1. 创建testfile的硬链接testfile.hard

  2. 被标记为蓝色背景

  3. i结点相同(故删除原文件不会导致硬链接失效,而且原文件和硬链接文件可以同步更新)

  4. 与原文件权限相同

    image-20210511185436525

注:

  • Linux中,硬链接不能跨分区创建(比如//boot
  • 硬链接文件只占用目录项存储空间大小(具体看情况)
硬链接ln与复制cp的区别
  1. 复制一份testfiletestfile.bak

  2. ls -li命令查看详细信息和i结点

  3. 发现硬链接与原文件的i结点相同,而文件备份与原文件的i结点不同

    image-20210511183639086

结论:文件复制生成了另一个全新的文件,另一个的索引结点,占用另一份存储空间

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

insight^tkk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值