linux 中硬链接和软链接的主要区别有:
1. 本质不同
- 硬链接:通过索引节点与源文件形成直接连接,指向同一个索引节点。
- 软链接:是一个特殊的文件,存放了源文件的路径,指向源文件本身。
2. 链接数
- 硬链接:会让索引节点的链接数增加。
- 软链接:不会影响所指向源文件的索引节点链接数。
3. 权限
- 硬链接:与源文件具有相同的访问权限。
- 软链接:具有自己的访问权限,与源文件无关。
4. 取地址
- 硬链接:在取地址时,返回的始终是源文件的 inode 号。
- 软链接:在取地址时,返回的是软链接文件的 inode 号。
5. 删除
- 删除源文件,硬链接仍能访问。
- 删除源文件,软链接失效。
6. 目录
- 硬链接不能对目录进行硬链接。
- 软链接可以为目录创建软链接。
7. 指向目录
- 硬链接只能指向文件。
- 软链接可以指向文件,也可以指向目录。
所以简单来说,硬链接就是物理上的多个文件名指向同一个文件;软链接类似 Windows 的快捷方式,通过存放源文件路径来定位源文件。