ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

【linux】循序渐进学运维-基础篇-文件的软硬链接

2021-04-13 23:53:45  阅读:140  来源: 互联网

标签:学运 文件 软硬 删除 创建 链接 linux 原文件 连接



文章目录


大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-基础篇的第54篇文章。


前言

今天我们主要来聊聊文件的硬链接和软连接

说到Linux链接,一般分为两种,一种是Hrad Link(硬链接), 另一种是Symbolic Link (软连接) 。

在这里我们使用的命令是ln

软硬链接的介绍

在Windows中,快捷方式是指向原始文件的一个链接文件,可以让用户从不同的位置来访问原始的文件, 源文件一旦被删除,链接文件也会失效。
但是Linux当中的快捷方式不太一样,我们先来看硬链接

1. 硬链接

硬连接指通过索引节点号来进行连接。我们可以理解为文件名映射到文件的方法, inode节点上的链接数,就是链接到该文件的硬链接个数。

如下图: 可以看到硬链接数一开始为1, 当增加一个硬链接后,硬链接数字变成了2.
在这里插入图片描述
在这里插入图片描述
从上图我们可以看到,新增加的硬链接文件名字与源文件的名字并不相同。所以硬链接我们又成为是,多个文件名指向同一个索引节点。

看下图,虽然文件名字不一样,但是索引节点相同
在这里插入图片描述
那么问题来了,如果我删除掉其中一个,另外要给会被删除吗?

在这里插入图片描述
可以看到删除后,源文件还存在,相当于一个备份,即使误删除了一个,另一个也存在。

注意:

  • 只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。
  • 硬链接不能跨文件系统,因为 inode 编号只在同一文件系统下唯一.
  • 不能使用 ln 创建链接于目录的硬链接
  • 创建链接于存在的文件实体的硬链接时,只会占所属目录的子文件列中的一个表项,不占用额外的空间
  • 对于目录而言,至少存在两个硬链接:目录本身和目录中文件名为“.”的子文件。
2. 软连接

软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息

软连接中我们使用的命令是ln -s

特点:

  • 软链接为新的文件,需要新的 inode 节点与数据块,空间开销比硬链接大。
  • 能够跨文件系统创建软链接。
  • 能使用 ln创建链接目标文件为目录的软链接。
  • 当软链接所链接的文件被删除或重命名时,会导致软链接失效。

案例实战

1) 硬链接原文件删除不会影响链接文件的正常使用

下图的实验说明了: 修改原文件内容,链接文件内容也会修改
在这里插入图片描述
从下图可以看到: 删除原文件后,并不影响链接文件的使用
在这里插入图片描述

2) 硬链接不能跨分区进行创建

这里先把sdb1挂载到了/mnt去,然后再创建硬链接到mnt上去,是无法创建的,因为不能跨分区
在这里插入图片描述

有些资料上显示,硬链接不能跨目录,我做了下测试,发现是可以的。

在这里插入图片描述

3) 创建软连接,测试删除原文件后,软连接是否还存在

在这里插入图片描述

如果我们删除原文件会怎样?

在这里插入图片描述
从上图可以看到,如果我们删除掉原文件,软连接也就不存在了,颜色也变成了红色

在这里插入图片描述

4) 软链接可以跨分区创建

错误案例:之所以错误是因为 再创建跨分区软链接时,源文件必须要写绝对路径。
在这里插入图片描述

正确示范:

在这里插入图片描述
上图可以看到成功常见了跨分区的软链接。

5) 列出当前路径下所有的软链接文件

find ./ -type f l -ls

总结

以上是对软硬链接的介绍和使用,软连接在日常工作中用的还是比较频繁的。

软硬链接相对来说比较简单,练上几次就能上手。

我们高胜寒,一个在教培行业不忘初心的人,欢迎点赞收藏。我们下篇文章再见!

标签:学运,文件,软硬,删除,创建,链接,linux,原文件,连接
来源: https://blog.51cto.com/xinsz08/2704518

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有