【Linux初阶】基础IO - 软硬链接 | 初识、理解、应用 文件acm时间

news/2025/2/4 1:07:14/

🌟hello,各位读者大大们你们好呀🌟
🍭🍭系列专栏:【Linux初阶】
✒️✒️本篇内容:初识软硬链接,软硬链接的区别,理解软硬链接,软硬链接的应用,文件acm时间
🚢🚢作者简介:计算机海洋的新进船长一枚,请多多指教( •̀֊•́ ) ̖́-


文章目录

  • 一、软硬链接初识
    • 1.软连接初识
    • 2.硬链接初识
    • 3.软硬链接的区别
  • 二、理解 硬链接 和 软连接
    • 1.理解硬链接
      • (1)硬链接原理
      • (2)count记录硬连接数
      • (3)文件真正删除(count=0)
    • 2.理解软连接
      • (1)删除目标文件,软连接会失效
      • (2)软连接 = 快捷方式
  • 三、软硬链接的应用
    • (1)软连接的应用 - 快捷方式
    • (2)硬链接的应用 - 目录
  • 四、文件 acm时间
  • 结语


一、软硬链接初识

1.软连接初识

建立一个软连接文件 soft_file.link:假设我们有一个 makefile.txt文件,可以使用ln -s命令,将我们的soft_file.link 对 makefile.txt进行软连接。

ln -s myfile.txt soft_file.link

在这里插入图片描述

通过观察,我们可以发现这是一个l开头的文件,这种文件我们称之为 链接文件。同时,通过观察链接文件与被链接文件的 inode,它们具有相互独立的 inode,我们可以知道这是两个独立的文件。

总结,软连接文件权限以 l 开头,具有独立的 inode。

———— 我是一条知识分割线 ————

2.硬链接初识

建立一个硬连接文件 hard_file.link:假设我们有一个 makefile.txt文件,可以使用ln命令,将我们的hard_file.link 对 makefile.txt进行硬连接。

ln myfile.txt hard_file.link

在这里插入图片描述

———— 我是一条知识分割线 ————

3.软硬链接的区别

软硬链接的区别:是否具有独立的 inode

  • 软连接具有独立的 inode – 可以被当作独立文件看待
  • 硬链接不具有独立的 inode – 那硬链接我们应该如何理解呢?让我们继续向下研究。

总结:我们以 是否有独立的 inode判断软硬链接。

———— 我是一条知识分割线 ————

二、理解 硬链接 和 软连接

1.理解硬链接

(1)硬链接原理

通过观察,我们不难发现,硬链接的 inode和被链接文件的 inode是同一个!假如我们在 makefile.txt中写入内容,没有在 hard_file.link中写入内容,分别输出 makefile.txt 和 hard_file.link的内容,我们可以发现它们的输出内容也一样。

也就是说:建立硬链接,根本没有建立新文件。因为系统没有给硬链接分配 独立的 inode。既然没有建立文件,也就没有自己的属性集合和内容集合,因此我们不难推断出,它使用的是被链接文件的属性集合和内容集合。

在这里插入图片描述

总结:硬链接共享被链接文件的 inode。

———— 我是一条知识分割线 ————

(2)count记录硬连接数

其中 inode里面包括一个引用记数 count:它记录的是有硬连接数。当有多一个文件名链接 inode时,count++,count初识数为1。我们可以通过 ll -li指令查看文件的 count,观察下图,创建硬链接后,makefile.txt 和 hard_file.link 的 count 由1变为了2.

在这里插入图片描述

总结:inode中由count引用记数,用于记录本 inode硬链接数。

———— 我是一条知识分割线 ————

(3)文件真正删除(count=0)

什么时候一个文件被真正删除呢?答案是,当一个文件 inode的硬链接数变为 0,也就是 count变为 0的时候一个文件才被真正删除。下图示例中将硬链接被链接文件删除,本质上只改变了 count,没有删除文件。
加粗样式

总结:硬连接数(count)变为 0,一个文件才被真正删除。

———— 我是一条知识分割线 ————

2.理解软连接

(1)删除目标文件,软连接会失效

我们删除源文件后发现,软连接文件进行了报错,因为还有硬链接文件(count=1),源文件的 inode依旧存在,说明软连接并不是用 inode进行标记的。

我们可以思考一下,我们在计算机使用过程中,是使用什么方法查找文件的,不就是通过文件的路径和文件名进行查找的吗?实际上,软连接通过 目标文件的路径(具体路径 - 其中包括目标文件的文件名),对目标文件进行标定

我们进一步做推断,这个路径只能放在这个软链接文件的数据块中。因此,将目标文件(源文件)删除,这个路径就失效了(不完整了),软连接也就失效了。

加粗样式

总结:软连接文件是独立文件,拥有自己的数据块,数据块中存储的是目标文件的路径(包括目标文件名、很具体的那种),它可以通过目标文件的路径,找到目标文件。
补充:删除目标文件,软连接失效,新建同名目标文件,软连接恢复。 删除软连接,对目标文件无影响。

(2)软连接 = 快捷方式

为什么我们双击电脑的快捷键图标,能运行我们的程序呢?答案就是,快捷键属性中保存有我们目标可运行程序的路径,双击操作之后通过软连接的方式完成了跳转。

在这里插入图片描述

快捷方式的意义:方便快捷的获得服务。

总结:软连接 = 快捷方式


三、软硬链接的应用

(1)软连接的应用 - 快捷方式

Linux下,会有不同深度的目录,我们可以通过软连接的方式,将软连接文件放在不同于目标文件的目录下,使用户在不同的目录下,也可以快捷简便的运行或打开该文件。

软连接的存在,让文件在非存在目录下也可以被访问。

(2)硬链接的应用 - 目录

创建一个空目录,通过指令我们可以发现,目录的默认 count为2,这是为什么呢?下面我们做一个实验:创建一个名为 empty的空目录,进入目录并通过 ls -lina查看所有文件(包括隐藏文件)

在这里插入图片描述

最终我们可以发现,其中还有两个文件,一个是 .,另一个是 ..;注意,点也是一个文件。根据我们之前所学知识,我们知道, .代表的含义就是当前目录, ..代表的含义为上一级目录。

普通文件 count默认为 1,这是因为目录本身的文件名与对应的 inode有映射关系。而目录文件 conut默认为 2,这是因为目录中还有一个隐藏文件 .,它与目录的 inode也具有映射关系。

当我们在 empty的空目录下再创建一个空目录,empty的 count会变成 3,这是因为它的下级目录中会有一个隐藏文件 ..(代表上级目录)与 empty的 inode形成映射关系。

我们可以通过观察 inode进行验证:这是硬链接应用的一种体现。

在这里插入图片描述

至此,我们就明白了指令 cd ..的原理是什么了。 实际上就是因为 ..作为上级目录的硬链接文件,指向的是上级目录的路径。

总结:硬链接帮助树状结构的目录实现了,向下查找和向上回退。

操作系统为了保证文件查找流程稳定,防止出现目录与目录之间形成闭环,导致无法顺利按树状结构进行向下查找和向上回退的情况出现,它:不允许用户给目录建立硬链接。

注意:操作系统不允许用户给目录建立硬链接。


四、文件 acm时间

对于我们任何一个文件来说都有三类时间:

  • Access 最后访问时间
  • Modify 文件内容最后修改时间
  • Change 属性最后修改时间

我们可以通过 stat指令进行查阅,下面举一个简单的例子:

stat test.c

在这里插入图片描述

总结:

  1. 当我们对文件属性进行修改,文件对应的 Change(属性最后修改时间)也会被修改。
  2. 当我们对文件内容进行修改,文件对应的 Modify 和 Change 都会被修改;这是因为,文件内容被改时,文件的属性很大概率也会被改变,因此这两个时间都变了。
  3. 当文件被访问时,操作系统会根据策略(访问一定时间或次数)对 Access修改。

结语

🌹🌹 软硬链接 和 文件acm时间 的知识大概就讲到这里啦,博主后续会继续更新更多Linux的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!你们的支持是博主坚持创作的动力!💪💪


http://www.ppmy.cn/news/882325.html

相关文章

苹果4s忘记id密码怎么办_大哭!iPhone手机ID密码忘记了怎么办?3种方法轻松解决问题...

123阅读本文前,请您先点击上面的“蓝色字体”,再点击“关注”,这样您就可以继续免费收到文章了。每天都会有分享,都是免费订阅,请您放心关注。 每一个苹果用户都有一个iPhone ID,它的好处不言而喻&…

4s问题

刘建华 13:39:05 CustomerConfirmList OwnerInformationListUI 上面两个类的searchFilter方法里面增加校验 giianhui 13:40:09 嗯,还有其他信息吗? 刘建华 13:40:13 一共两个界面 增加2个复选框,2必选1. giianhui 13:41:36 radiobutton把…

iOS 如何解决苹果审核4.3问题(guideline4.3, 马甲包4.3, 马甲包混淆)(一)

最近用户遇到苹果审核guideline4.3问题, 也就是大家说的马甲包4.3, 这里来说说原因。 首先,要看你是什么产品和使用的什么技术框架, 不同的框架对应的解决方案是不一样的。 先说说为什么会遭受到4.3, 苹果的审核目前分…

杂谈:iphone 4s 会登陆中低端市场吗?

新闻一则: http://tech.163.com/mobile/11/0628/06/77K96BC100112K8E.html 今天各大媒体报道称苹果iphone 5 和iphone 4s这两款产品会在今年的9月份发布,这则消息一出引起很多人关注。对于引起潮流的iphone 无疑成为众多粉丝的追捧对象,时…

第6章 NVMe 介绍 6.1-6.3

6.1 AHCI 到 NVMe AHCI协议。NVMe协议。 HDD 和早期的 SSD 绝大多数都是使用SATA接口,跑的是AHCI,它是一种系统接口标准。 后来,AHCI 和 SATA 不能满足高性能和低时延 SSD 的需求,SSD 需要更快、更高效的协议和接口。因此 NVMe 出…

如何将SAP数据抽取到Azure数据湖平台?

经过多年的发展,SNP Glue 在全球已成为值得信赖且广为人知的解决方案,支持客户将其 SAP 数据与现代化的平台集成。SNP Glue 打破了数据孤岛,向数据科学家开放了 SAP,支持基于企业 SAP 数据的多个新用例。 随着时间的推移&#xff…

被强制007加班!他愤而把加班证据发给国外供应商和大客户!客户纷纷取消订单!他去度假,老板气疯!...

被pua了怎么办?被强制007又怎么办? 大多数人可能就忍气吞声了,但是哪里有压迫哪里就有反抗,总有人受不了奋起反抗。有位腾讯员工的朋友被pua007压迫太久,一怒之下做了这件事,重创老板,大快人心&…

独孤求败姜贵昌,铁拳无敌姜万福

桥头村。 四面环山,中间空旷出一片低谷。山底流出一条河,蜿蜒穿行过村子。河水的源头有一座自然形成的桥,叫“天生桥。”拐了几道弯便有一座石拱桥,分两个孔。自嘉庆年间建成,是村中第一大姓“姜”姓祖上修建。属百年古…