目录
见一下软硬连接
建立一个软连接
建立硬连接
特征
1. 软连接是一个独立的文件,因为有自己的inode号,由上图可知;
软连接的内容:目标文件所对应的路径字符串(linux中路径具有唯一性);所以以后找到一个文件可以通过软连接找到指定的文件;
它类似于windows中的快捷方式;删除软连接不会影响目标文件,就像在windows界面中删除快捷方式不影响程序;但是如果把目标文件删掉那么软连接就没用了;
删除目标文件,可以看到软连接在高闪,并且cat也没用了因为目标文件已不在
2. 硬连接不是一个独立的文件,因为你没有一个独立的inode号,你用的是目标文件的inode号;
硬连接就是一个文件名和inode的映射关系,建立硬连接就是在指定目录下,添加一个新的文件名和inode number 的映射关系!
所以硬连接根本就没有新建文件,所以就不可能有自己的inode,没有inode就绝对没有数据块,所以说白了硬连接就是在当前目录下新建一个文件名和inode的映射关系!目标文件的inode number和硬连接的inode number就跟指针一样,指向同一个文件属性,所以文件的引用计数为2;当删除一个映射关系后只有一个指向,所以为1;
可以理解为重命名
3. 属性中有一列硬连接数;
文件的磁盘级引用计数:有多少个文件名字符串通过inode number 指向我(inode)
注意:inode number和inode不一样 ;
删除连接可以用rm也可以用unlink filename
什么是软硬连接,有什么用
软连接有什么用
使用软连接可以快速达到一个路径比较深的文件;
那么就能理解软连接为什么包含路径?
因为我们知道路径具有唯一性,给我对应的路径就可以让系统对路径进行解析从而找到对应的文件;
硬连接有什么用
任何一个目录,刚开始新建的时候,引用计数一定是2;在a空目录里面再新建一个b空目录,会使得a空目录的引用计数+1,那么求一个目录内部有几个目录:a目录的引用计数-2;
那么就可以得出在根目录下有22个子目录
其次硬连接可以做备份;
在Linux中不允许给目录创建硬连接:避免形成路径环绕
总结
我们知道定位一个文件只有两种方式:
1. 通过路径(理解为软连接)
2. 直接找到目标文件的inode(理解为硬连接)
但是最终还是要通过inode number的
文件:
1. 打开的文件------内核,内存有关
2. 没有被打开的文件------磁盘,文件系统有关
我们知道我们的文件分为文本写入和二进制写入:但是我们写入的时候没有管什么形式。其实从操作系统上来讲都是二进制。那么文本写入是什么意思呢?是语言层面上的概念,那么我从磁盘上读的二进制是怎么变为文本内容的呢?就是语言层上提供的缓冲区给我们解释。