Linux 软连接和硬连接的区别

Linux中有软连接和硬连接,他们之间的区别,今天简单说一下:

软连接:类似于Windows中的快捷方式,访问软连接实际上访问的是实际的文件。
比方说我们创建一个软连接:

#-s参数说明是软连接
ln -s test test.soft

145636295.png

硬连接:相当于对原文件的一个copy+同步更新

然后我们再创建一个硬连接:

ln test test.hard

我们向原始文件追加一点内容:

150109803.png

可以看到软连接文件内容发生了变化,很容易理解,因为是同一个文件,硬连接文件也同步更新了,那么他原理是什么呢?

在Linux中,系统识别每个文件都是靠节点号来识别,而不是靠文件名。那么我们来看一下以上文件的节点号分别是多少:

150345934.png

可以看到硬连接的节点号和原文件相同,所以更新的时候会一起更新,但是软连接的却不一样。

那么如果我们删除原始文件呢?

150545908.png

软连接已不能访问了,这个显而易见,但是硬连接依然可以访问,这也是一个不同点。

我们在对一个比较老的文件创建连接:

jane@Jane:~/test$ ln -s /etc/issue issue.soft
jane@Jane:~/test$ ln  /etc/issue issue.hard

151157674.png

可以看到硬连接创建的文件和原文件时间是一样的,而软连接则不一样。


另外一个值得注意的地方是:

软连接可以跨分区创建,但是硬连接不可以,只能在本分区创建。



你可能感兴趣的:(linux,软连接,硬连接)