UNIX文件系统之软链接和硬链接

来源:互联网 发布:ntfs for mac激活不了 编辑:程序博客网 时间:2024/06/14 14:29

UNIX将磁盘分为inode区和block区,inode区中inode的多少决定了每块block的大小,每块block存储一个文件。

inode仅记录文件的属性:创建时间、修改时间、硬链接数目、属主、指向block大小及区域(文件名并不记录在inode中),block记录文件的数据部分。

目录也具有inode号和block,其中block中记录的是该目录下的文件名(及目录名)与inode号的对应关系。

在同一文件系统下的某目录的block中添加文件名和inode号即可建立硬链接,相应的inode号的硬链接数会+1,在目录block中删除一条记录,可使相应文件的inode硬链接数-1,一条硬链接被删除时仍可通过其它硬链接访问文件数据。当硬链接数减为0时,该inode号被操作系统回收,其指向的文件的block数据块亦被回收(即数据被删除)。硬链接不能指向目录,也不能指向其它文件系统(分区)。

因此UNIX硬链接访问文件的顺序(每次读取inode号和block数据都要求用户具有访问权限):

目录inode号==> 目录block==>解读目录block中文件名和inode号的对应关系==>按照inode号在本文件系统中查找==>根据inode号指向访问block文件


软链接:建立新的inode号和block数据块,软链接文件名被存储在其上级目录的block中,软链接的block存储了其指向的文件的路径。

因此UNIX软链接访问文件的顺序(每次读取inode号和block数据都要求用户具有访问权限):

目录inode号==> 目录block==>解读目录block中软链接文件名和inode号的对应关系==>查找软链接的inode==>根据inode向访问block文件==>读取软链接block中的数据(被指向的文件的路径)==>找到被指文件的目录==>执行硬链接的操作读取文件。



0 0