文件系统与软硬链接

版权声明:本文为博主原创文章,转载请注明出处,谢谢。 https://blog.csdn.net/nailnehc/article/details/79077443

文件系统与软硬链接

         以Linux最标准的ext2文件系统为例。在Linux系统中,每个文件不仅有数据(内容),还包括元数据(各种属性),例如,所属用户组、所属用户、能否执行、文件建立时间、文件特殊属性,等等。在ext2文件系统中,将每个文件的内容分为两部分来存储,一个是文件属性,另一个则是文件的内容。

         ext2规划出inode与块来分别存储文件的属性(放在inode)与文件的内容(放在块区域中)。要将一个分区格式化为ext2时,就必须要还制定inode与块的大小才行,也即,他一定会有inode表与块区域这两个部分。(块是数据存储的最小单位)

         inode:记录文件相关属性,以及文件内容放在哪个块内(即:具有指针功能,指向文件内容放置的块之中),当属性内容过多,一个inode无法全部存下时,可以扩展一个块,然后视这个被扩展的块为inode的一部分,把剩余的信息存入即可(若还不够,在扩展一个块,由此类推),之后就是常规操作了。

         块:用来存储文件内容。

【键入ls –i就可以查看当前了目录下的文件及文件夹的inode号。】

目录:在Linux的ext2文件系统建立一个目录时,ext2会给该目录分配一个inode与至少一个块。其中,inode记录该目录的相关属性,并指向分配到的那个快;块记录在这个目录下的相关文件的关联性

文件:在Linux下的ext2建立普通文件时,ext2会给该文件分配至少一个inode与相对于该文件大小的块数量。例如,假设一个块时4KB,建立一个100KB的文件,Linux将分配一个inode一25个块来存储该文件。

硬链接与软链接概念

硬连接:是给文件一个副本,同时建立两者之间的连接关系。修改其中一个,与其连接的文件同时被修改。如果删除其中任意一个硬链接,其余的文件将不受影响。

软连接:是对源文件在新的位置建立一个“快捷方式”,所以,当源文件删除时,符号连接的文件将成为无源之水->仅仅剩下个文件名了,当然删除这个连接,也不会影响到源文件,但对连接文件的使用、引用都是直接调用源文件的。


由上图可知,硬链接原文件与新文件inode号一样,而软链接不一样;

把副本删除,硬链接1不会受到影响,而软连接就不可用了;

把硬链接1删除,副本不会受到影响,软链接也不会受到影响;

把软连接删除,对于硬链接1还是副本都没有影响;

还有一点就是,当生成副本后,就没有所谓的源文件。

在创建软连接时,多采用相对路径,这样,可以避免在上级目录被移动时造成软连接失效。

猜你喜欢

转载自blog.csdn.net/nailnehc/article/details/79077443