文章目錄

软连接和硬链接是Linux中经常用到的,详细介绍可以参考https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/

要知道软连接和硬链接的区别,必须知道了解Linux的文件系统设计,这其中就有inode这个概念。一个文件被分为用户数据和元数据,其中用户数据是数据存储的地方,而元数据中的inode则是指向这个地方,而文件名只是便于人们记忆而已。对于inode号,可以使用stat或者ls -i查看.

一个inode号可以对应多个文件名,这种情况下就是硬链接。因此创建硬链接并不需要拷贝用户数据,也就是不像cp命令那样,新创建一个inode号,所以创建硬链接速度非常快。只是硬链接有一个局限的地方就是只能对文件创建硬链接,并且不能跨越文件系统。需要注意的一个问题是,修改硬连接,原文件的内容也会修改。而修改原文件,也会修改硬连接。

而创建软连接则会创建新的inode号,只是这个inode号指向的用户数据很特殊,它指向创建软连接的文件。对于软连接,则没有硬链接的那些限制,它可以跨越文件系统,可以对目录创建软链接。只是当把原文件删除后,软连接就变成了死链接了。

文章目錄