我们在学习 《Linux-CentOS 7.9 - 3、Linux 系统介绍》的时候,有提到一个比较重要的概念:软连接,接下来我们学习一下这个东西。但是学习我们要从硬链接开始学。
一、硬连接
首先我们先去创建一个硬连接(硬连接没有办法对目录操作),这里我们还是用之前的例子,先去这个 lemon1234 目录下面把我们的内个 txt 文件删除了,接着回到 home 目录。
创建硬连接,我们这里使用的是 ln 命令,ln 命令使用
ln [源文件] [目标文件]
这里我们来使用一下,给 HelloWorld.txt 创建一个硬连接,目标文件在 lemon1234/HelloWorld.txt 下面。
怎么证明我们这个硬连接创建好了?这里我们去 home 下面的 HelloWorld.txt 进行内容的修改,然后去看看这个 home/lemon1234 下面的 HelloWorld.txt 的有没有变化。
可以看到哈,是可以的,我们现在在 home/lemon1234 下修改 HelloWorld.txt 文件,看看原文件是否也会变化。
可以看到,这个是双向的,不管修改源文件,还是连接文件,两端都是会改变的。
接着我们再来看几个东西。使用命令:ll -i
前面的 34462994(可能你跟我的不一样),这个是 inode 节点(也就是文件的索引节点,这个大家自己去百度~~)是一样的,接着是后面的 2,这个是硬连接次数,可以看到,我们说明我们这里是有两个,不相信我们可以再去创建一个。
可以看到,是没有问题的。现在我们将原始的 HelloWorld.txt 删除,然后修改 lemon1234 下面的文件,我们来看看 lemon1234_copy 下面的文件会不会变。
可以看到,虽然原文件被我们删除了, 但是通过其他地方修改文件,也是可以进行同步访问的。
最后搞一个简单的总结:硬链接的本质就是一条文件名和i结点的关联记录而已。
但是我们并不推荐使用硬连接(也是要看情况),所以我们再来看一下软连接(可以比作 windows 中的快捷方式)
二、软连接
首先我们先还原一下,还原到硬连接操作前~~~
还原之后,我们来创建一个软连接,创建方式其实和之前创建硬连接类似,只是多了一个指令 -s,来搞一下(这里要注意,一定要用完整的路径,不然后续没有办法操作!!!)
可以看到啊,软连接创建好就是这个淡蓝色的~~~,而且注意一下权限,以后所有创建的软连接权限都是 rwxrwxrwx。
首先来看一下,我们的 inode 节点值是否一样。
可以看到,这个是不一样的,而且后面的硬连接数都是 1。虽然这个不一样,但是他们所属的文件都是一个文件,我们这里修改一下 lemon1234 下面的软连接文件。
没有问题,直接可以使用。接着我们将原文删除,看看这个软连接是否还可以继续使用
可以看到啊,删除软连接原文后,软连接颜色都改变了,从之前的淡蓝色变成了红色。而且也不让我们读了。
这一篇就到这里,自己尝试去创建一些硬连接 & 软连接