硬链接和软链接
以前每次在网上看到软链接和硬链接都吓一小跳,心里没底。写这篇文章是想自
己总结一下软链接和硬链接在“行为上”的区别,感觉网上介绍的硬链接和软链接的文
章都好吓人,所以想用下面的几个对比来简化两者的区别:
硬链接:硬链接不能跨越文件系统。硬链接文件与原文件具有相同的inode。
软链接(符号链接):软链接能够跨越文件系统,它具有唯一的inode,也就是说软
链接和原文件具有不同的inode。(创建软链接时,我们应该总是使用绝对路径而不是
相对路径,以最大化可移植性。)
修改原文件:
@1:修改原文件的名字:
软链接将不再指向原文件(软链接使用文件名作为引用),而硬链接仍能够正确的指
向原文件(硬链接使用inode作为引用)。
@2:修改原文件的内容:
由于软硬链接文件都指向原文件,所以软硬链接文件的内容也随之改变。
@3:删除原文件:
硬链接可以继续独立存在;而软链接失效,不再指向原文件。
修改链接文件:
@1:修改链接文件的名字:
不管是修改软链接还是硬链接文件的名字,更改后的链接文件都仍然能够指向原文件。
@2:修改链接文件的内容:
修改硬链接文件的内容,原文件的内容也随之改变,因此软链接的内容也随之改变。
修改软链接文件的内容,结果与上面的相同,即:原文件和软链接的内容都随之改变。
@3:删除链接文件:
当然删除硬链接文件不会对原文件和软链接文件有任何影响,同样软链接也是。
总结(当同时存在软硬链接时):
@1:链接文件名字想怎么改都行,但原文件的名字不能改(否则就得重新定义软链接)。
@2:不管是修改原文件还是软硬链接文件的内容,各个文件都会同步。
@3:删除链接文件可以,但删除原文件会破坏软链接。