我们在学习 《Linux-CentOS 7.9 - 3、Linux 系统介绍》的时候,有提到一个比较重要的概念:软连接,接下来我们学习一下这个东西。但是学习我们要从硬链接开始学。

一、硬连接

首先我们先去创建一个硬连接(硬连接没有办法对目录操作),这里我们还是用之前的例子,先去这个 lemon1234 目录下面把我们的内个 txt 文件删除了,接着回到 home 目录。

创建硬连接,我们这里使用的是 ln 命令,ln 命令使用

ln [源文件] [目标文件]

这里我们来使用一下,给 HelloWorld.txt 创建一个硬连接,目标文件在 lemon1234/HelloWorld.txt 下面。

centos7python软连接 centos软连接作用_linux

怎么证明我们这个硬连接创建好了?这里我们去 home 下面的 HelloWorld.txt 进行内容的修改,然后去看看这个 home/lemon1234 下面的 HelloWorld.txt 的有没有变化。

centos7python软连接 centos软连接作用_centos 7.9_02

可以看到哈,是可以的,我们现在在 home/lemon1234 下修改 HelloWorld.txt 文件,看看原文件是否也会变化。

centos7python软连接 centos软连接作用_linux_03

可以看到,这个是双向的,不管修改源文件,还是连接文件,两端都是会改变的。

接着我们再来看几个东西。使用命令:ll -i

centos7python软连接 centos软连接作用_centos_04

前面的 34462994(可能你跟我的不一样),这个是 inode 节点(也就是文件的索引节点,这个大家自己去百度~~)是一样的,接着是后面的 2,这个是硬连接次数,可以看到,我们说明我们这里是有两个,不相信我们可以再去创建一个。

centos7python软连接 centos软连接作用_linux 软连接_05

可以看到,是没有问题的。现在我们将原始的 HelloWorld.txt 删除,然后修改 lemon1234 下面的文件,我们来看看 lemon1234_copy 下面的文件会不会变。

centos7python软连接 centos软连接作用_centos 7.9_06

可以看到,虽然原文件被我们删除了, 但是通过其他地方修改文件,也是可以进行同步访问的。

最后搞一个简单的总结:硬链接的本质就是一条文件名和i结点的关联记录而已

但是我们并不推荐使用硬连接(也是要看情况),所以我们再来看一下软连接(可以比作 windows 中的快捷方式)

二、软连接

首先我们先还原一下,还原到硬连接操作前~~~

centos7python软连接 centos软连接作用_linux_07

还原之后,我们来创建一个软连接,创建方式其实和之前创建硬连接类似,只是多了一个指令 -s,来搞一下(这里要注意,一定要用完整的路径,不然后续没有办法操作!!!

centos7python软连接 centos软连接作用_linux_08

可以看到啊,软连接创建好就是这个淡蓝色的~~~,而且注意一下权限,以后所有创建的软连接权限都是 rwxrwxrwx。

首先来看一下,我们的 inode 节点值是否一样。

centos7python软连接 centos软连接作用_centos 7.9_09

可以看到,这个是不一样的,而且后面的硬连接数都是 1。虽然这个不一样,但是他们所属的文件都是一个文件,我们这里修改一下 lemon1234 下面的软连接文件。

centos7python软连接 centos软连接作用_centos_10

没有问题,直接可以使用。接着我们将原文删除,看看这个软连接是否还可以继续使用

centos7python软连接 centos软连接作用_linux 软连接_11

可以看到啊,删除软连接原文后,软连接颜色都改变了,从之前的淡蓝色变成了红色。而且也不让我们读了。

这一篇就到这里,自己尝试去创建一些硬连接 & 软连接