目录
1.文件组成
2.文件系统
3.软硬连接
1.文件组成
先来看看文件的属性部分:
文件属性由权限,硬连接数量,所属组,所属人,大小和修改时间构成。
再来看看文件由的一个的东西inode
793395 793328就是inode
2.文件系统
我们可以将磁盘切块,图上就表示一块所含有的各个部分。
super block:这里存放了文件系统本身的结构信息,记录有block和inode的总量,一个block和inode的大小,最近一次挂载的时间,最近一次写入数据的时间,最近一次检验磁盘的时间等其他文件系统的相关信息。
group descriptor table:描述这块的属性
block bitmap:位图,记录哪些块被用,哪些空余。
inode bitmap:记录哪些inode被用,哪些空余
inode table:存放inode信息
data blocks:存放数据
创建文件的过程就是先找到一个没有被占用的inode给该文件,inode中含有文件的属性信息和要存在哪些data blocks中。依次去存储数据就可以,最后再创建一个文件名与inode连接起来,
删除文件的过程其实只是断开这个文件名和inode的连接关系,使得这个inode可以被别的文件使用。同时就做到了可以用别的文件数据去覆盖之前文件对应的data blocks。恢复文件的前提条件也就出现了,想要恢复文件,必须保证该文件inode不能被新文件覆盖。
3.软硬连接
上面我们提到过硬链接个数。那么什么是硬链接呢?我们都知道同一目录下不能有俩同名文件,这是因为inode无法分配。硬链接其实就是用一个新的文件名和建立硬链接的文件inode连接。
例子:
我建立了一个file.txt的文件,这时它的硬连接数是1。
建立硬链接的指令是ln 目标文件 新文件名
这时file.txt的硬连接数就变成了2。
值得注意的是,目录也是文件的一种,他在创建的时候初始硬链接数就是2。
原因:在这个目录下有隐藏文件..指向的就是这个目录。
软连接就如同windows下的快捷方式,他用了新的inode,但是内容和创建软连接的文件相同。
因此可以观察出file.txt的硬链接数还是1。
从这里我们也可以间接看出为啥在Windows下删除快捷方式并不能删除特定的应用,毕竟inode都不一样,找不着啊!