建立一个文件的过程:
先问super block获取inode编号,然后把建立的文件和inode进行绑定。
删除一个文件的过程:
先要释放要删除文件的inode编号,然后解除文件与inode的关系,再在数据block里释放block,告诉系统这个block可以使用。
如果此时没有新文件的创建覆盖这个block,则可以通过重新建立inode和文件的关系恢复数据。
如果此时有新文件覆盖,则不能恢复数据
软连接
建立软连接(类似于快捷方式,指向源文件名)
ln -s 源文件路径(绝对路径) 链接文件路径(绝对路径)
修改
修改链接文件 源文件也会跟着变
修改源文件 链接文件也会跟着变
删除
删除链接文件对源文件没有影响
删除源文件对链接文件有影响
硬链接
建立硬连接(指向inode,唯一标示)
ln 源文件路径(绝对路径) 链接文件路径(绝对路径)
源文件和链接文件的inode一样,而软连接inode是不一样的
修改
修改链接文件 源文件也会跟着变
修改源文件 链接文件也会跟着变
删除
删除链接文件对源文件没有影响
删除源文件对链接文件没有影响
软连接的实现
链接文件通过源文件再指向inode对应的block块,
所以inode是不一样的,因为源文件的inode是指向block块,链接文件的inode是指向源文件
实现过程:
链接文件为des.txt,源文件为source.txt。
先通过链接文件的inode指向的文件名找到源文件名,再通过源文件名根目录下找到源文件,
然后知道了源文件的inode编号,最后通过inode找到block块。
硬链接的实现
链接文件和源文件都是指向同一个inode,所以inode是一样。
实现过程:
源文件和链接文件都通过同一个inode找到block块
软连接支持跨分区,硬链接不支持
比如跨区硬链接,源文件指向的inode是111,链接文件的inode也指向111,
但是他们两个指向的inode虽然都是一样但是不是同一个block
也可以对目录做硬链接软连接