在linux ext2文件系统中,一个文件的属性存放在inode中,而数据存放在block中。每个文件占用一个inode,inode中记录了文件的权限和block地址,通过inode可以定位到block。

linux文件软链接、硬链接_计算机基础

在文件系统初始化后,inode和block的数量就确定了(所以大量小文件是会消耗inode的)。

 

目录也是一个文件,也有inode和block,目录的block中记录了该目录下的文件名和对应的inode号。定位一个文件,入口是文件路径,也就是从目录开始。

linux文件软链接、硬链接_计算机基础_02

 

hard link

ln zhang zhang_hd

新加了一个文件名zhang_hd,它对应的inode号和zhang的inode号相同。使用限制:无法跨文件系统,无法为目录建立。

 

symbol link

ln -s zhang zhang_so

新建一个文件zhang_so,它有自己的inode和block,block中记录的是目标文件的文件名。

 

操作实例:新建文件,分别为其建立硬链接、软链接,最后移动源文件。

linux文件软链接、硬链接_文件系统_03

 

听人说过,在linux同一个文件系统内,mv 操作非常快,为什么呢,因为它并不真的移动数据,只是作了一个rename的操作。

linux文件软链接、硬链接_linux_04