目录
软硬链接
1.软链接
指令:ln -s 存在的文件 软链接文件名
软链接的inode与原文件不同,意味着软链接的文件跟源文件不是同一个文件。
2.硬链接
指令:ln 存在的文件 硬链接文件名
inode与原文件一致,说明它两是同一个文件
3.理解硬链接
首先观察上面的操作,重定向字符到原文件中,不难发现硬链接的文件大小和原文件的大小一模一样,而且inode也一样, 两个文件内容也一样,那么能知道其实硬链接就是原文件。由此知道建立硬链接,并没有创建新的文件,因为OS并没有为其分配inode,没有创建文件意味着,硬链接没有自己的属性集合和内容集合,它用的是原文件的内容和属性集合。
从逻辑结构解释一下
1.inode没有变化说明硬链接文件的东西全是原文件的东西2.两个一样的inode对应了图中有一个数变成2了,这个2数是硬链接数
3.其实,目录存储文件名和文件的inode映射,那么硬链接就是将inode的映射和硬链接文件名连接在一起,随后把硬链接数加一,这个数是智能指针
4.硬链接文件删除,原文件不会被删除,但是对应的硬链接数减一;
5.原文件删除,硬链接的文件也还会存在,同样的对应的硬链接数减一;
6.文件删除的表现:当文件的硬链接数变为0,这个文件才被彻底删除。
4.理解软链接
1.软链接的inode与原文件不同,说明软链接的内容和原文件不同
2.软链接文件的作用是找到原文件,也就意味着其实软链接的内容是原文件的地路径
3.删除原文件,软链接文件就找不到原文件,该文件就失效了
4.重新加载一个新的文件,链接会对上,但是文件不是原来的文件了
5.本质是查地址找文件,对应的Windows其实是快捷方式的功能实现
5.应用
1.通过软链接快速执行文件
执行文件可能在很深的路径中,只要我们软链接此文件在自己觉得方便的路径下,这样执行文件只需要打开软链接就可执行指定文件。
2.硬链接的里外访问
1.想要回到上层目录调用cd ..
2.当下的目录调用即为cd .
3.其实仔细观察目录文件的硬链接数,不难看出:当叶目录的链接数为1,因为 .就是当前目录,它自己就是一个链接;而上层的目录就有多个链接数,因为不仅包括上层文件自己,也包括里面的目录中..文件的硬链接。
特别的,操作系统不会让用户对目录创造硬链接,因为操作系统对用户不信任。
不同分区有可能有不同文件系统,就算系统相同,也会导致节点号有歧义冲突,因此硬链接不能跨分区建立