Linux软链接和硬连接
在Linux中,存在软链接和硬连接两种链接,两种链接之间存在一些区别,今天来整理一下他们的区别。
列 | 区别 | 软链接 | 硬链接 |
1 | 文件开头 | 以l开头 | 没有规定 |
2 | 权限 | lrwxrwxrwx(所有人拥有所有的权限) | 不一定 |
3 | i节点 | 和源文件i的节点不同 | 和源文件的i节点相同,所以,源文件和硬链接的内容修改是 同步的,当然,你运行软链接也是可以看到你的修改的,因为软链接是指向的源文件的。 |
4 | 跨分区 | 可以跨分区 | 不可以跨分区 |
5 | 链接对象 | 可以链接目录和文件 | 不可以链接目录 |
此外,还有一点需要知道的,当源文件被删除时,此时执行软链接是无效的,就相当于在window中,你的安装目录已经没有了,这时,你再点击快捷方式,也是无法运行的,但是硬链接是可以的,即使你的源文件已经删除,硬链接还是可以使用的,硬链接就像是备份了一份一样,而且,属性也是不变的,相当于 cp -p+同步修改。下面用一些示例来演示一下。
如图,我用ln -s创建了一个软链接,ln创建了一个硬链接,当我去查看他们的属性的时候,会发现软链接的i节点号是和源文件不同的,而硬链接的i节点号是和源文件相同的。而且,软链接是以l开头的:lrwxrwxrwx,所有人都有全部权限。
下面我将演示将链接建到不同的分区中
如图,我想在根分区下建一个硬链接,但是他的源文件在boot分区下,这时就会报错。
除了不可以跨分区,硬链接也不可以链接目录
即使在同一个位置,硬链接也是不可以链接到目录的!!
ok 打完收工!!