在linux ext2文件系统中,一个文件的属性存放在inode中,而数据存放在block中。每个文件占用一个inode,inode中记录了文件的权限和block地址,通过inode可以定位到block。
在文件系统初始化后,inode和block的数量就确定了(所以大量小文件是会消耗inode的)。
目录也是一个文件,也有inode和block,目录的block中记录了该目录下的文件名和对应的inode号。定位一个文件,入口是文件路径,也就是从目录开始。
hard link
新加了一个文件名zhang_hd,它对应的inode号和zhang的inode号相同。使用限制:无法跨文件系统,无法为目录建立。
symbol link
新建一个文件zhang_so,它有自己的inode和block,block中记录的是目标文件的文件名。
操作实例:新建文件,分别为其建立硬链接、软链接,最后移动源文件。
听人说过,在linux同一个文件系统内,mv 操作非常快,为什么呢,因为它并不真的移动数据,只是作了一个rename的操作。