首先我们可以用图片了解软硬链接
如果我想要访问文件a中的内容,电脑需要在文件a的属性里找到它的inode节点号(比如图中的1234),然后磁盘通过inode节点号在inode table里面找到对应的数据(比如图中的this),然后显示到屏幕上
而硬链接(如图a.hard)因为本质和原文件一样所以硬链接和原文件的节点号相同(如下图)
而软链接(如图a.soft)因为本质和原文件不同所以它有自己的节点号(比如11111),节点号进入的内容是原文件(文件a)的路径,之后和打开a文件相同。
下面我们来实际操作来了解他们的特点
首先我们先在test文件夹内
创建文件a:touch a
创建文件a的硬链接:ln a a.hard
创建文件a的软连接:ln -s a a.soft
我们用echo分别给 文件a 和他的软硬链接进行编辑,并用cat查看内容(如图)
我们可以看到通过文件a和它的软硬链接编辑文件的内容,只要其中一个内容改变,其他三个的内容都随之改变。
当我们删除a文件时
可以看到他的软链接标红 并且找不到文件,而硬链接则正常显示
我们可以画图了解
当a文件被删除时,因为他的软链接找不到a文件所以无法显示,而硬链接无影响。
当我们重新创建一个文件a 并且输入内容进文件a时
我们可以看到软连接恢复正常并显示新的a文件的内容,而硬链接保持和之前的a文件内容相同
以上我们可以总结出
软连接:
(1)软链接是存放另一个文件的路径的形式存在;
(2)软链接可以对一个不存在的文件进行链接,而硬链接必须要有源文件;
(3)软链接可以对目录进行链接。
硬链接:
(1)硬链接是以文件副本的形式存在,不会占用实际空间;
(2)删除其中一个硬链接并不影响其它有相同的inode的文件。