硬链接与软连接
一、硬链接
文件包含两部分数据,文件属性和文件内容,在linux中这两部分放在不同的区块,属性放在indoe中,实际内容放在 block中。另外还有一个super block记录文件系统的整体信息,包括indoe和block 的总量、使用量、剩余量等
文件数据包含:
文件属性(容量、时间、权限等)
文件实际内容
文件系统各区块(索引式文件系统)
inode:记录文件属性和此文件的block码(搜索方法就是通过inode找到block之后就可以查看文件内容了)
block:记录实际内容,若文件太大会占用多个block(非常大)
目录有点特别,目录的block存的是对应文件夹下的文件名和文件名所对应的文件的inode(这样在目录中记录文件名了,inode里就不用记录文件名了)
创建硬链接不会增加inode的数量,因为创建硬链接不会创建一个文件,只是在目录的block中加了一个关联数据。但是会增加block的一个记录(这个记录大小很小)所以一般不会增加block的数量,只有之前的block满了,再创建一个硬链接才会增加block的数量
硬链接的特点
1、一般不会增加inode和block,不占空间。
2、不能跨文件系统(例如c盘和d盘)
3、不能连接目录(目录树可能生成环)
4、对硬链接进行读写操作时操作的是源文件
5、删除硬链接或源文件,不影响相同inode的其他文件
当删除时,硬链接数量减一为0时,inode会释放空间,文件彻底删除
用法 ln + 原文件名 + 创建软连接文件名。
二、软连接
建立一个独立的文件,这个文件会让数据的读写的链接文件(这个文件内部存是它链接文件的路径)。但删除链接文件时,系统仅仅删除
连接文件、不会删除原文件本身。当原文件被删除后软连接文件失效,标红打不开。
用法 ln -s 原文件 目标文件
原文件和软连接指向不同的inode
软连接移动到其他目录下,如果原文件使用的是2绝对路径则可以再次查找如果不是就不能查找
软连接的特点
1、相当于快捷方式
2、存文件路径,软连接文件很小
3、使用绝对路径
4、对软连接进行读写操作,系统会自动转换为对源文件的操作(删除连接文件时,删除的是链接文件,而不是源文件)
5、软连接的权限是满的,但真正的权限取决于源文件
6、源文件被删除,软连接无法访问