Linux中有软连接和硬连接,他们之间的区别,今天简单说一下:
软连接:类似于Windows中的快捷方式,访问软连接实际上访问的是实际的文件。
比方说我们创建一个软连接:
#-s参数说明是软连接 ln -s test test.soft
硬连接:相当于对原文件的一个copy+同步更新
然后我们再创建一个硬连接:
ln test test.hard
我们向原始文件追加一点内容:
可以看到软连接文件内容发生了变化,很容易理解,因为是同一个文件,硬连接文件也同步更新了,那么他原理是什么呢?
在Linux中,系统识别每个文件都是靠节点号来识别,而不是靠文件名。那么我们来看一下以上文件的节点号分别是多少:
可以看到硬连接的节点号和原文件相同,所以更新的时候会一起更新,但是软连接的却不一样。
那么如果我们删除原始文件呢?
软连接已不能访问了,这个显而易见,但是硬连接依然可以访问,这也是一个不同点。
我们在对一个比较老的文件创建连接:
jane@Jane:~/test$ ln -s /etc/issue issue.soft jane@Jane:~/test$ ln /etc/issue issue.hard
可以看到硬连接创建的文件和原文件时间是一样的,而软连接则不一样。
另外一个值得注意的地方是:
软连接可以跨分区创建,但是硬连接不可以,只能在本分区创建。