[root@CentOS ~]# | ls -lhi / | 以第二个为例 | ||||
64 | dr-xr-xr-x. | 5 | root root | 4.0K | Apr 25 11:08 | boot |
索引节点inode号码 相当于身份证号码 用以区分文件 | 第一个位置为文件类型 第二到十位文件/目录权限 .(点)SElinux相关 | 硬链接数量 一个文件不同的入口 | 属主 属组 所有者 所属用户组 | 文件大小 目录大小可用du-sh命令查看 | 文件修改时间 | 文件名,不是文件属性 |
inode与block
inode(索引节点)
每个文件在文件系统中都有一个唯一的inode,他是一个包含文件元数据的结构体。这些元数据包括但不限于文件大小,所有者,权限,时间戳(创建时间、修改时间和访问时间)等文件属性信息,但不包括文件名和文件实际内容,只存放指向文件实体的指针(block位置)。类似于身份证号码,借此可找到文件内容。
block(数据块)
block是文件系统中最小存储单位,用于存储实际的文件数据。不同文件系统可能有不同的block大小,默认常见的block大小为1KB、2KB、4KB。将文件内容分割成多个块,每个块可独立存储在磁盘不同位置,当读取或写入文件时,文件系统根据需要加载更新相应数据块。
特点
每创建一个非空文件至少占用一个inode,一个block,一般文件都要有一个inode。
inode与block数量是在格式化的时候创建,正常情况下block使用会更快
创建不足一个block大小的小文件,其中剩余的block空间无法给其他文件使用,创建大于一个block大小的文件,占用多个block。
文件可以有多个名字(硬链接),但共享一个inode,当文件被删除时,实际是将文件名字从目录中移除,并减少inode链接计数,只有链接计数为零且文件不再被任何进程打开时,inode及其指向的数据块才会被真正的释放。
查看文件内容过程
以(cat ck.txt为例)用户访问ck.txt的时候,操作系统会根据inode号码找到对应的 inode空间; 访问到inode空间后,确认用户,确认权限;权限信息正确就准许通过,可以访问inode对应的block区域(数据)。
查看inode与block
查看inode使用情况命令 df -h 磁盘空间使用情况
查看block使用情况命令 df -i
Linux文件类型
- | 普通文件file,包括文本文件、数据文件、可执行文件等,范围较广 |
d | 目录文件directory,组织和管理其他文件和目录 |
l | 软链接文件link,指向另一个文件或目录,类似Windows快捷方式 |
c | 字符设备文件char,可按字符流方式读写设备,如键盘、鼠标,用于实时数据传输 |
b | 块设备文件block,可按块(固定大小数据单元)读写设备,如硬盘、USB存储设备 |
s | 套接字文件socket,进程间通信,允许不同进程通过文件系统接口进行数据交换 |
p | (命名)管道文件pipe,进程通信,先进先出,可在文件系统被其他进程访问 |
Linux文件时间
显示文件的属性状态信息
命令:stat
格式:stas 选项 文件
例:find /home/ -type f -exec stat {} \; 递归查找/home/目录的所有文件(不包括目录),并对每个找到的文件执行stat命令
软硬链接区别(面试)
指向目标:软链接类似Windows快捷方式,存放目标文件或目录的路径;
硬链接则直接指向原始文件inode(索引节点),即磁盘存储数据的实际位置
创建方式:软链接通过ln -s创建;硬链接通过ln创建
删除影响:当源文件删除后,只要至少有一个硬链接,则文件数据不会移除,只有最后一个硬链接也被删除,才会释放文件所占用空间;
删除软链接,源文件无影响;删除源文件,软链接变成悬空链接(红底白字闪烁),无法使用软链接
跨文件系统:软链接可以跨越不同的文件系统,甚至链接到不存在的文件或目录上;
硬链接依赖inode,只能在同一文件系统内创建
权限与所有权:软链接有自己的权限设置,通常遵循创建时所在目录的默认权限,他所有者为创建他的用户;
硬链接继承源文件的所有属性,包括权限、所有者等
空间占用:每个软链接都会消耗一些额外的空间来存储其路径信息;创建硬链接几乎不占用额外空间,因为他仅增加一个新文件名到已有inode上
类型限制:软链接可以创建对目录或文件的链接;而硬链接一般情况下不能用于目录。
(在某些特殊情况下,如组织复杂的目录结构或使用特殊命令除外,ext4文件系统debugfs工具)
使用场景:软链接较常使用,用于提供便捷性,如组织复杂的目录结构或构建开发环境时的灵活配置;
硬链接用于需要保存多个副本但只有一份数据,如备份重要文件。