文章目录
你们好,我是高胜寒,本文是Linux运维-按部就班学运维-基础篇的第54篇文章。node
前言
今天咱们主要来聊聊文件的硬连接和软链接运维
说到Linux连接,通常分为两种,一种是Hrad Link(硬连接), 另外一种是Symbolic Link (软链接) 。ide
在这里咱们使用的命令是ln测试
软硬连接的介绍
在Windows中,快捷方式是指向原始文件的一个连接文件,可让用户从不一样的位置来访问原始的文件, 源文件一旦被删除,连接文件也会失效。
可是Linux当中的快捷方式不太同样,咱们先来看硬连接3d
1. 硬连接
硬链接指经过索引节点号来进行链接。咱们能够理解为文件名映射到文件的方法, inode节点上的连接数,就是连接到该文件的硬连接个数。blog
以下图: 能够看到硬连接数一开始为1, 当增长一个硬连接后,硬连接数字变成了2.
从上图咱们能够看到,新增长的硬连接文件名字与源文件的名字并不相同。因此硬连接咱们又成为是,多个文件名指向同一个索引节点。索引
看下图,虽然文件名字不同,可是索引节点相同
那么问题来了,若是我删除掉其中一个,另外要给会被删除吗?图片
能够看到删除后,源文件还存在,至关于一个备份,即便误删除了一个,另外一个也存在。it
注意:class
只删除一个链接并不影响索引节点自己和其它的链接,只有当最后一个链接被删除后,文件的数据块及目录的链接才会被释放。也就是说,文件真正删除的条件是与之相关的全部硬链接文件均被删除。
硬连接不能跨文件系统,由于 inode 编号只在同一文件系统下惟一.
不能使用 ln 建立连接于目录的硬连接
建立连接于存在的文件实体的硬连接时,只会占所属目录的子文件列中的一个表项,不占用额外的空间
对于目录而言,至少存在两个硬连接:目录自己和目录中文件名为“.”的子文件。
2. 软链接
软连接文件有相似于Windows的快捷方式。它其实是一个特殊的文件。在符号链接中,文件其实是一个文本文件,其中包含的有另外一文件的位置信息
软链接中咱们使用的命令是ln -s
特色:
软连接为新的文件,须要新的 inode 节点与数据块,空间开销比硬连接大。
可以跨文件系统建立软连接。
能使用 ln建立连接目标文件为目录的软连接。
当软连接所连接的文件被删除或重命名时,会致使软连接失效。
案例实战
1) 硬连接原文件删除不会影响连接文件的正常使用
下图的实验说明了: 修改原文件内容,连接文件内容也会修改
从下图能够看到: 删除原文件后,并不影响连接文件的使用
2) 硬连接不能跨分区进行建立
这里先把sdb1挂载到了/mnt去,而后再建立硬连接到mnt上去,是没法建立的,由于不能跨分区
有些资料上显示,硬连接不能跨目录,我作了下测试,发现是能够的。
3) 建立软链接,测试删除原文件后,软链接是否还存在
若是咱们删除原文件会怎样?
从上图能够看到,若是咱们删除掉原文件,软链接也就不存在了,颜色也变成了红色
4) 软连接能够跨分区建立
错误案例:之因此错误是由于 再建立跨分区软连接时,源文件必需要写绝对路径。
正确示范:
上图能够看到成功常见了跨分区的软连接。
5) 列出当前路径下全部的软连接文件
总结
以上是对软硬连接的介绍和使用,软链接在平常工做中用的仍是比较频繁的。
软硬连接相对来讲比较简单,练上几回就能上手。
咱们高胜寒,一个在教培行业不忘初心的人,欢迎点赞收藏。咱们下篇文章再见!