1、inode
-
要解释清楚两者的区别和联系需要先说清楚 linux 文件系统中的 inode 这个东西
-
当划分磁盘分区并格式化的时候,整个分区会被划分为两个部分,即inode区和data block(实际数据放置在数据区域中)
-
inode即是(目录、档案)文件在一个文件系统中的唯一标识,需要访问这个文件的时候必须先找到并读取这个 文件的 inode
Inode 里面存储了文件的很多重要参数,其中唯一标识称作 Inumber
2、软链接
可以看成是 Windows 中的快捷方式, 可以让你快速链接到目标文件或目录, 它找到的是原文件名, 通过原文件名再找到真实的数据, 它自身有 inode
3、硬链接
它透过文件系统的 inode 来产生新的文件名, 注意不是产生新的文件, 换而言之, 就是一个文件使用了多个别名, 这个别名与源文件名都指向源文件的 inode
4、区别
4.1 软链接和硬链接的区别
- ln -s 创建软连接, ln 创建硬链接 目录不能创建硬链接, 且不能跨分区系统创建
- 软连接支持文件和目录, 且能跨分区系统, 常用
- 硬链接文件与源文件 inode 相同, 而软连接是不同的
- 删除软连接文件和硬链接文件, 对源文件没有任何的影响 删除源文件,软连接失效, 硬链接无影响(还可以访问内容)
- 删除源文件和硬链接, 整个文件会被真正的删除
4.2 软连接, 硬链接与 拷贝 的区别
- 软连接建立的链接文件与源文件并不是同一个文件, 就是一个快捷方式, inode号也不同
- 硬链接实际上是文件的一个别名, 链接文件和源文件实际上是同一个文件, 修改源文件或者硬链接文件, 相互都会改变
- 复制源文件, 产生一个全新的文件, 与源文件没有关系了, 修改新文件内容与源文件无关
5、通过 ls -i 来查看 inode号
参考:软连接与硬链接