暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

linux下的软连接和硬链接

小董的成长笔记 2021-06-20
587

在之前的文章里我们提到过在文件的属性中,有软链接和硬链接的这个属性,那么它们到底是什么,它们分别有什么用呢?让我们一起来探讨下吧

1. 软链接和硬链接是什么?

linux下的软链接相当于windows中的快捷方式,它保存着源文件的绝对路径,当你去打开这个软链接的时候,它会去找源文件

硬链接:硬连接是指通过索引节点来进行链接的,两个文件名指向同一个inode


硬链接相当于复制一样,当你创建了硬链接,那么就相当于有两个一模一样的文件。

举个栗子:你家一个房间有多个门,哪个门都可以进入到房子里,并且无论哪个门坏掉了,对另外一个门都没有影响


话不多说,为了让大家有更加直观的感受,我们直接上图

从上图我们可以直观的看到以下结论:


1. 软连接类似于一个文本文件,里面存放的是源文件的路径,指向原文件的实体

2. 软连接和源文件是不同类型的文件,也是不同的文件所以inode号也不同

3. 具有相同的inode节点的多个文件互为硬链接文件,硬连接文件相当于是文件的另一个入口,所以可以通过给文件设置硬连接,防止重要的文件被误删除

2. 创建软链接和硬链接

创建的时候需要注意的一些问题:

  • 创建时目标文件不能存在

  • 目录不可以创建硬链接

  • 软连接可以跨文件系统,硬链接不可以跨文件系统

工作中常用软链接

软链接和硬链接创建的时候是不同的,不带参数是创建硬链接,带上-s参数是创建软链接

ln是创建链接的命令,它有一些参数,我这里说下常用的两个参数

参数作用
-s创建软链接(如果不带 -s 参数,默认创建硬链接)
-f强制创建文件或目录的链接

通过上图我们可以证实我们上面说的一些结论,硬链接和源文件具有相同的inode号码,软链接与源文件inode号码是不同的,软链接指向源文件

3. 删除源文件、硬链接、软链接都有什么影响呢?

我们在来介绍下分别删除源文件、硬链接、软链接会有什么影响,你也可以看下上边软链接和硬链接的那张图,对照着图你会更加清晰的记住这些结论

  • 如果删除软连接,源文件不变,跟硬链接也没啥关系

  • 如果删除源文件,软链接就会失效,硬链接不影响

  • 删除硬链接,对软链接和源文件没有任何影响

  • 删除硬连接文件或者源文件之一,文件实体并没有被删除, 只有删除了源文件以及所有对应的硬连接文件,文件实体才会被删除

  • 当所有的硬连接文件及源文件被删除之后,再次存放新的数据会占用这个文件空间,或者磁盘检查的时候,删除的数据会被系统回收

结论已经说完了,你可以对照上图看下,我们现在开始实验,实验完成我们本节也就结束了,谢谢大家的观看

好了,我们今天的内容到这里就结束了,我们下期再见

欢迎大家一起交流

转发

收藏

点赞

在看



文章转载自小董的成长笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论