思维导图
学习目标
定位一个文件,只有两种方式:
- 通过路径进行寻找
- 直接找到目标文件的inode
一、软链接
1.1 来看一看软链接
ln -s testfile.txt file_soft.link
通过上图,我们可以发现软链接是一个独立的文件,有自己独立的inode。
删除软链接,不会影响目标文件,但是删除目标文件,会影响软链接。
文件 = 内容 + 属性,软链接的内容是:目标文件所对应的路径字符串,路径具有唯一性,我们可以通过路径找到文件,执行文件。因此,软链接类似于windows当中的快捷方式。
1.2 软链接的作用
软链接就是一个快捷方式,可以将一个路径很复杂的文件连接到路径简单的文件,可以对执行文件更方便。
二、硬链接
2.1 来看一看硬链接
ln testfile2.txt file_herd.link
硬链接不是一个单独的文件吗,硬链接用的是目标文件的inode,没有独立的inode
硬链接是一个文件名和inode的映射关系,建立硬链接,就是在指定目录下,添加一个新的文件名和inode_number的映射关系。
2.2 硬链接的作用
任何一个目录在刚开始新建的时候,引用计数一定是2,目录A内部新建一个目录,会让A目录的引用计数自动 + 1。 如何计算一个目录中有几个目录,A的引用计数 - 2
在Linux系统中,不允许给目录建立硬链接,避免建立路径环绕,文件名是固定的,所有的系统指令在设定的时候,几乎都能知道 .. 是干什么的。
硬链接的作用:
- 构建Linux中的相对路径结构,我们可以使用 .. 来进行路径的定位
- 一般使用硬链接对文件进行备份
三、软硬连接的特征
- 软链接是一个独立的文件,因为有独立的inode_number
- 硬链接不是一个独立的文件,因为没有独立的inode_number,用的是目标文件的inode
- 属性中有一列硬链接数,文件的磁盘级引用计数:有多少个文件名字符串通过inode_number指向inode