在之前的文章里我们提到过在文件的属性中,有软链接和硬链接的这个属性,那么它们到底是什么,它们分别有什么用呢?让我们一起来探讨下吧
1. 软链接和硬链接是什么?
linux下的软链接相当于windows中的快捷方式,它保存着源文件的绝对路径,当你去打开这个软链接的时候,它会去找源文件
硬链接:硬连接是指通过索引节点来进行链接的,两个文件名指向同一个inode
硬链接相当于复制一样,当你创建了硬链接,那么就相当于有两个一模一样的文件。
举个栗子:你家一个房间有多个门,哪个门都可以进入到房子里,并且无论哪个门坏掉了,对另外一个门都没有影响
话不多说,为了让大家有更加直观的感受,我们直接上图
从上图我们可以直观的看到以下结论:

1. 软连接类似于一个文本文件,里面存放的是源文件的路径,指向原文件的实体
2. 软连接和源文件是不同类型的文件,也是不同的文件所以inode号也不同
3. 具有相同的inode节点的多个文件互为硬链接文件,硬连接文件相当于是文件的另一个入口,所以可以通过给文件设置硬连接,防止重要的文件被误删除
2. 创建软链接和硬链接
创建的时候需要注意的一些问题:
创建时目标文件不能存在
目录不可以创建硬链接
软连接可以跨文件系统,硬链接不可以跨文件系统
工作中常用软链接
软链接和硬链接创建的时候是不同的,不带参数是创建硬链接,带上-s参数是创建软链接
ln是创建链接的命令,它有一些参数,我这里说下常用的两个参数
参数 | 作用 |
---|---|
-s | 创建软链接(如果不带 -s 参数,默认创建硬链接) |
-f | 强制创建文件或目录的链接 |
通过上图我们可以证实我们上面说的一些结论,硬链接和源文件具有相同的inode号码,软链接与源文件inode号码是不同的,软链接指向源文件
3. 删除源文件、硬链接、软链接都有什么影响呢?
我们在来介绍下分别删除源文件、硬链接、软链接会有什么影响,你也可以看下上边软链接和硬链接的那张图,对照着图你会更加清晰的记住这些结论
如果删除软连接,源文件不变,跟硬链接也没啥关系
如果删除源文件,软链接就会失效,硬链接不影响
删除硬链接,对软链接和源文件没有任何影响
删除硬连接文件或者源文件之一,文件实体并没有被删除, 只有删除了源文件以及所有对应的硬连接文件,文件实体才会被删除
当所有的硬连接文件及源文件被删除之后,再次存放新的数据会占用这个文件空间,或者磁盘检查的时候,删除的数据会被系统回收
结论已经说完了,你可以对照上图看下,我们现在开始实验,实验完成我们本节也就结束了,谢谢大家的观看
好了,我们今天的内容到这里就结束了,我们下期再见
欢迎大家一起交流

转发

收藏

点赞

在看