产品网站推广方案,做网站会遇到什么问题,高端品牌汽车,河南郑州最新消息操作系统的文件数据除了实际内容之外#xff0c;通常含有非常多的属性#xff0c;例如Linux操作系统的文件权限与文件属性。文件系统通常会将这两部分内容分别存放在inode和block中。
inode 和 block 概述
文件是存储在硬盘上的#xff0c;硬盘的最小存储单位叫做扇区sect…操作系统的文件数据除了实际内容之外通常含有非常多的属性例如Linux操作系统的文件权限与文件属性。文件系统通常会将这两部分内容分别存放在inode和block中。
inode 和 block 概述
文件是存储在硬盘上的硬盘的最小存储单位叫做扇区sector每个扇区存储512字节。操作系统读取硬盘的时候不会一个个扇区地读取这样效率太低而是一次性连续读取多个扇区即一次性读取一个块block。这种由多个扇区组成的块是文件存取的最小单位。块的大小最常见的是4KB即连续八个sector组成一个block。
文件数据存储在块中那么还必须找到一个地方存储文件的元信息比如文件的创建者、文件的创建日期、文件的大小等等。这种存储文件元信息的区域就叫做inode中文译名为索引节点也叫i节点。因此一个文件必须占用一个inode但至少占用一个block。
元信息 → inode数据 → block
inode 内容
inode包含很多的文件元信息但不包含文件名例如字节数、属主UserID、属组GroupID、读写执行权限、时间戳等。
而文件名存放在目录当中但Linux系统内部不使用文件名而是使用inode号码识别文件。对于系统来说文件名只是inode号码便于识别的别称。
查看inode信息 stat 文件名 ls -i //直接查看文件的inode信息 查看文件类型 file 文件名 inode号码
表面上用户通过文件名打开文件实际上系统内部将这个过程分为三步
1.系统找到这个文件名对应的inode号码 2.通过inode号码获取inode信息 3.根据inode信息找到文件数据所在的block并读出数据。
其实系统还要根据inode信息看用户是否具有访问的权限有就指向对应的数据block没有就返回权限拒绝。
硬链接与软链接
硬链接
通过文件系统的inode链接来产生的新的文件名而不是产生新的文件称为硬链接。
一般情况下每个inode号码对应一个文件名但是Linux允许多个文件名指向同一个inode号码。意味着可以使用不同的文件名访问相同的内容。 ln 源文件 目标 运行该命令以后源文件与目标文件的inode号码相同都指向同一个inode。inode信息中的链接数这时就会增加1。
当一个文件拥有多个硬链接时对文件内容修改会影响到所有文件名但是删除一个文件名不影响另一个文件名的访问。删除一个文件名只会使得inode中的链接数减1。
需要注意的是不能对目录做硬链接。
通过mkdir命令创建一个新目录其硬链接数应该有2个因为常见的目录本身为1个硬链接而目录下面的隐藏目录.点号是该目录的又一个硬链接也算是1个连接数。
软链接
类似于Windows的快捷方式功能的文件可以快速连接到目标文件或目录称为软链接。 ln -s 源文件或目录 目标文件或目录 软链接就是再创建一个独立的文件而这个文件会让数据的读取指向它连接的那个文件的文件名。例如文件A和文件B的inode号码虽然不一样但是文件A的内容是文件B的路径。读取文件A时系统会自动将访问者导向文件B。这时文件A就称为文件B的软链接soft link或者符号链接symbolic link。
这意味着文件A依赖于文件B而存在如果删除了文件B打开文件A就会报错。这是软链接与硬链接最大的不同文件A指向文件B的文件名而不是文件B的inode号码文件B的inode链接数不会因此发生变化。