十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Linux inode 详解

Linux inode 详解 简介索引节点Index Node是Linux/类unix系统文件系统上的一种数据结构用于存储有关文件或目录的元数据。它包含文件的所有信息除了文件名和数据。inode在文件系统如何存储和检索数据方面起着至关重要的作用。当在Linux系统上创建一个文件时系统会为它分配一个inode。这个inode包含有关文件的详细信息如权限、所有者、大小以及文件数据块在磁盘上的位置。Inode 包含什么File type常规文件、目录、符号链接等File permissions文件的读、写和执行权限Owner文件所有者的用户 ID (UID)Group文件组的组 ID (GID)File size以字节为单位Timestampsctime最后一次改变inode的时间mtime文件数据的最后修改时间atime上次访问文件的时间Link count该文件的硬链接数Pointers to data blocks包含文件实际数据的块的地址这些通常是间接指针查看 Inode 信息使用ls -ils 命令可以与 -i 选项一起使用来显示文件的 inode 编号ls -i filename示例输出ls -i myfile.txt 1234567 myfile.txt使用statstat 命令提供有关文件的更多详细信息stat filename示例输出$ stat myfile.txt File: myfile.txt Size: 1024 Blocks: 8 IO Block: 4096 regular file Device: 803h/2051d Inode: 1234567 Links: 1 Access: 2025-02-06 10:15:47.000000000 0000 Modify: 2025-02-05 09:24:38.000000000 0000 Change: 2025-02-05 09:24:38.000000000 0000 Birth: -Inode 在文件操作中的作用文件创建当创建文件时文件系统会为其分配一个inode用于存储文件的元数据。文件名存储在链接到inode的目录条目中硬链接硬链接是指向索引页的指针。多个文件名可以指向相同的索引节点并且彼此之间无法区分。它们共享相同的inode但可以位于不同的目录中。直到所有硬链接被删除文件的数据才会被删除。创建一个硬链接ln original_file hard_link_name符号软链接符号链接 (symlink) 是一种特殊类型的文件它通过存储路径指向另一个文件或目录。符号链接有自己的inode但使用路径指向目标文件创建一个软链接ln -s target_file symlink_name文件删除当一个文件被删除时它的索引节点中的链接数会减少。一旦链接计数达到零即没有更多的文件名指向该inodeinode及其数据块将被释放以供重用。但是inode本身直到不再使用时才会被删除。索引节点表索引节点表是存储文件系统所有索引节点的内部结构。该表是在格式化文件系统时创建的它包含固定数量的inode。如果文件系统耗尽了inode则无法创建新文件即使磁盘上有可用的空闲空间。这种情况在具有许多小文件的文件系统上尤其常见。检查文件系统上可用的 inodedf -i示例输出Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda1 524288 10000 514288 2% / # 文件系统有 524,288 个 inode其中 10,000 个已被使用514,288 个是空闲的索引节点限制有限的Inode数量每个文件系统都有固定数量的Inode这些Inode是在创建文件系统时创建的。如果Inode用尽即使有可用磁盘空间也无法创建新文件无文件名存储inode不存储文件名因此文件名与inode结构无关。如果文件被重命名inode保持不变硬链接限制某些文件例如使用某些选项挂载的目录和文件系统不能有硬链接通过 Inode 查找文件find /path/to/search -inum inode_number示例用法find / -inum 1234567
返回列表