文件基本操作

首先,我们基于文件系统逻辑组成部分对常见的文件操作进行深入理解:

  • 创建文件:文件名为/etc/rc.d/init.d

    • 先在磁盘上找一段空闲的磁盘块,在inode区建立其磁盘块地址与新建inode号的对应表
    • 然后找到存放rc.d目录内容(该内容是一个文件名与inode号组成的索引表)的磁盘块
    • 在该目录索引表中添加init.d文件名和新建inode号的对应关系
  • 不彻底删除文件

    • 删除inode区的文本内容存放块地址与inode号的对应关系
    • 删除文件上一级目录文件(索引表)中的待删除文件的文件名与inode号的对应关系
    • 文件本身存储在数据区的内容不做改变。
  • 粉碎文件

    • 删除inode区的文本内容存放块地址与inode号的对应关系
    • 删除文件上一级目录文件(索引表)中的待删除文件的文件名与inode号的对应关系
    • 将文件本身存储在数据区块中的数据用其他数据覆盖填充,破坏原来的数据。
  • 同分区下的复制文件:将/etc/fstab复制到/etc/Fstab

    • 在inode区新建一个inode号与存储/etc/fstab内容的块地址相对应
    • 在etc目录文件(索引表)中添加Fstab文件名与新建inode号的对应关系
  • 同分区下的移动文件:将/etc/fstab移动到/etc/Fstab

    • 先删除etc目录索引表中fstab文件名与inode号(该inode号与存放fstab文件内容的磁盘块地址相对应)的对应关系
    • 然后在home目录索引表中添加该inode号与Fstab文件名的对应关系
  • 跨分区复制文件:将/etc/fstab复制到/home/Fstab

    • 先在目标分区上划分一段空闲的磁盘块,建立好Fstab文件名与inode号,inode号与块地址的对应关系
    • 然后访问/etc/fstab文件,将其内容复制到之前划分好的磁盘块中
  • 跨分区移动文件:将/etc/fstab移动到/home/Fstab

    • 先在目标分区上划分一段空闲的磁盘块,建立好Fstab文件名与inode号,inode号与块地址的对应关系
    • 然后访问/etc/fstab文件,将其内容复制到之前划分好的磁盘块中
    • 最后将fstab文件名与inode号,inode号与磁盘块地址之间的对应关系删除

综上所述,对文件的管理基本上是对inode区以及目录索引表的操作,磁盘块中存放的文本数据要么不动,要么就是对其进行数据覆盖。

注意:以上所有关于删除inode号与磁盘块地址的对应关系可以直接通过将inode位图中该inode号对应的位置0实现,表示该inode号是空闲的,可以随意对其对应的磁盘块进行数据覆盖;每新建一个inode号与磁盘块地址的对应关系时,需要将inode位图中该inode号对应的位置1,表示该inode号已被占用。