今天为大家介绍以下软链接和硬链接
一。inode是什么?
理解inode,要从文件存储说起
1. 文件存储在硬盘上,硬盘的最小存储单位叫做“扇区”每个扇区存储512字节,相当于512字节
2. 操作系统读取硬盘时,不会一个个扇区的读取,这样效率太低,而是一次性连续读取多个扇区,即一次应读取一个“块”,
是文件存取的最小单位,“块”的大小最常见是4KB
3.文件数据存储在块中,那么很显然,我们还必须找到一个地方存储文件元信息,比如文件创建者,创建日期,文件大小等等 这种存储文件元信息的区域就叫做inode.即索引节点
二。inode号码
1.每个inode都有一个号码,操作系统用inode号码来识别不同文件
2.linux内部不使用文件名,而使用inode号码来识别文件
3.表面上:用户通过文件名,打开文件。实际上,系统内部这个过程分为三步
首先系统找到这个文件名对应的inode号码;其次通过inode号码,获取inode信息;最后根据inode信息,找到文件数据 所在的block,读出数据
三 。硬链接
多个文件名对应一个inode号码,
这就意味着,可以用不同的文件名访问同样的内容;对文件内容修改会影响到所有文件名;但是,删除一个文件名,不影响 另外一个文件名的访问
硬链接数:有几个文件名对应一个inode,硬链接数就是几
删除一个文件名,就会使得inode节点中的链接数减1,当这个值减为0,表明没有文件指向这个inode,系统就会回收这个 inode号码,以及其所对应block区,即数据区。
四。软链接
文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件 B,因此无论打开那个文件,最终读取的都是文件B.这时文件A就称为 文件B的“软链接”。
这就意味着,文件A依赖于文件B,如果B被删除,打开文件A就会报错
文件A指向文件B的文件名,而不是文件B的inode号码,文件B的inode链接数,不会因此改变