一分钟了解Linux文件系统

发布于 2019-09-27  134 次阅读


Linux文件系统原理
在所有的操作系统中文件都有文件名与数据,在Linux系统上文件系统分成两个部分:用户数据 (user data) 与元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息;在Linux系统中,元数据中的inode号(inode是文件元数据的一部分但其并不包含文件名,inode号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过inode号寻找正确的文件数据块。

Linux文件系统目录
大多数Linux版本采用了FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。对于ext2/3/4的文件系统,默认的data block大小是4096 byte,当需要新建文件或者目录的时候,最小的分配单位就是data block,也就是4K大小,比如一个文件内容是4M,就要分配1000个data block来存放这个文件的内容,而文件或者目录的属性、权限、data block编号是存在对应的inode中。当新建一个目录的时候,会默认的分配一个block,就是看到的4096byte,目录中文件的文件名和inode信息要存放到这个block中。目录里面文件增长,要存储的元信息也会增多,一个block不够,会再申请block,但是最小的单位就是block,所以大小总会是4096的整数倍。因此使用Linux命令查看新建目录时为什么会显示4096了。

Linux的链接
Linux系统引入了两种链接:硬链接(hard link)与软链接(又称符号链接,即soft link或symbolic link)。链接为Linux系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。基于以上的知识点就可以很好的理解硬链接与软链接的区别。
硬链接:与普通文件没什么不同,inode都指向同一个文件在硬盘中的区块。
软链接:保存了其代表的文件的绝对路径,是另外一种文件,不同的inode,在硬盘上有独立的区块,访问时替换自身路径。


其实这是一个爬虫博客