【Linux系列教程】03.链接命令--软连接和硬链接的区别

    首先,很抱歉。今天着实忙的不行,现在才闲下来,今天只能写一个这个了,十分抱歉!如果有错,尽请纠正!

【Linux系列教程】03.链接命令--软连接和硬链接的区别_第1张图片
我的丑字丑图

链接命令:ln

命令格式:ln -s [源文件] [目标文件]

英文含义:link

功能描述:为某一个文件在另外一个位置建立一个不同的链接文件

选项:-s 创建软连接,不加选项则为硬链接

-s 是代号(symbolic)的意思。

硬链接的特征:

        1、拥有相同的 i 节点和存储block块,可以看做同一个文件。

解释:之前我们说过每个文件都有属于自己的 i 节点,类似于ID号。硬盘分区会有一个文件索引列表以及一个数据分区。用户查找文件以后,会先进入到文件索引(文件索引至少包含 i 节点、时间、存储位置)内获取到存储位置,再根据位置去数据分区找到对应的block块,组合成数据返回。硬链接的话,链接文件和原文件都会对应同一个 i 节点和一样的存储数据块。这个概念和PHP里面的引用变量类似。也就是说,原文件和硬链接二者其中任何一个改变了另外一个也会改变,但是,如果其中一个被删除了另一个并不会被删除。这就相当于一个房间有二个门,我们关了一个门这个房间还是可以进入,房间里面什么东西变了不管你从哪个门,哪怕是从窗子进去那房间里面的东西都是一样的。

        2、可通过 i 节点识别

解释:上面第一条说了是有一样的 i 节点的。所以如果两个文件 i 节点一样,那二者肯定有一个是原文件,一个是硬链接。

        3、不能跨分区

解释:二个文件只能在同一个分区,这个应该是很好理解的吧?

        4、不能针对目录

解释:硬链接只能给单个文件做链接,对目录无效。也可以理解成一个文件的二个入口。

软链接的特征:

        1、类似于Windows的快捷方式。

解释:总的来说,链接的作用其实就是为了方便用户去进入某个目录或者是打开某个文件。

        2、软链接拥有自己的 i 节点和block块,但是对应的数据块中只保存了原文件的 i 节点和文件名等,并没有原文件的数据。

解释:刚才说过硬链接是和原文件共用同一个文件索引的。而软链接则不是,软链接有自己的文件索引,自己的 i 节点和数据块。当用户去搜索文件的时候,先是获取到软链接的文件索引,再根据存储目录去数据块中取得数据,这个数据包含原文件的信息。再根据信息中的存储位置去获取到原文件的数据从而再返回给用户。这就相当于一个传送门,每个软链接都是帮你快捷的传送到某个很远的地方去。

        3、软链接的权限都为lrwxrwxrwx。

解释:软链接各类用户都可以去读写。但是要注意的是,软链接的权限和原文件的权限是二码事儿。这就相当于把你传送过去了,但是面前还有一道门,然而你可能并没有带钥匙或者是带了钥匙。

        4、修改其中一个另外一个也会改变

解释:软链接这块是和硬链接一样的。这时候软链接就像一个快递员,你给他,他帮你送到你家。没有权限他就送不进去,有权限他就直接帮你放进去了。

        5、删除原文件以后软链接不能使用

解释:原文件都没有了传送门给你送哪去?宇宙?还是海底?

你可能感兴趣的:(【Linux系列教程】03.链接命令--软连接和硬链接的区别)