Linux inode 详解

news2025/2/13 6:33:22

简介

索引节点(Index Node)是 Linux/类unix 系统文件系统上的一种数据结构,用于存储有关文件或目录的元数据。它包含文件的所有信息,除了文件名和数据。inode 在文件系统如何存储和检索数据方面起着至关重要的作用。

当在 Linux 系统上创建一个文件时,系统会为它分配一个 inode 。这个inode 包含有关文件的详细信息,如权限、所有者、大小以及文件数据块在磁盘上的位置。

Inode 包含什么?

  • File type:常规文件、目录、符号链接等

  • File permissions:文件的读、写和执行权限

  • Owner:文件所有者的用户 ID (UID)

  • Group:文件组的组 ID (GID)

  • File size:以字节为单位

  • Timestamps

    • ctime:最后一次改变 inode 的时间
    • mtime:文件数据的最后修改时间
    • atime:上次访问文件的时间
  • Link count:该文件的硬链接数

  • Pointers to data blocks:包含文件实际数据的块的地址(这些通常是间接指针)

查看 Inode 信息

  • 使用 ls -i

ls 命令可以与 -i 选项一起使用来显示文件的 inode 编号

ls -i filename

示例输出

ls -i myfile.txt
1234567 myfile.txt
  • 使用 stat

stat 命令提供有关文件的更多详细信息

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
文件删除

当一个文件被删除时,它的索引节点中的链接数会减少。一旦链接计数达到零(即,没有更多的文件名指向该 inode ),inode 及其数据块将被释放以供重用。但是,inode 本身直到不再使用时才会被删除。

索引节点表

索引节点表是存储文件系统所有索引节点的内部结构。该表是在格式化文件系统时创建的,它包含固定数量的 inode 。如果文件系统耗尽了 inode ,则无法创建新文件,即使磁盘上有可用的空闲空间。这种情况在具有许多小文件的文件系统上尤其常见。

检查文件系统上可用的 inode

df -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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2297213.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【2025 Nature】AI 生成材料算法 MatterGen 文章要点

文章目录 1. MatterGen 框架2. 评价基础模型生成能力的指标3. MatterGen 基础生成能力表现4. MatterGen 定向生成能力表现i. 指定晶体化学式ii. 指定标量性质1. 每个性质微调一次。2. 两个性质联合微调 5. 实验合成6. 模型细节 这篇文档简单介绍 MatterGen 论文亮点。 标题&…

时间序列分析(三)——白噪声检验

此前篇章: 时间序列分析(一)——基础概念篇 时间序列分析(二)——平稳性检验 一、相关知识点 白噪声的定义:白噪声序列是一种在统计学和信号处理中常见的随机过程,由一系列相互独立、具有相同…

[前端] axios网络请求二次封装

一、场景描述 为什么要对axios网络请求进行二次封装? 解决代码的复用,提高可维护性。 —这个有两个方案:一个是二次封装一个是实例化。(设置一些公共的参数,然后进行请求) 为什么可以解决代码的复用: 这是…

【学术投稿-2025年计算机视觉研究进展与应用国际学术会议 (ACVRA 2025)】CSS样式解析:行内、内部与外部样式的区别与优先级分析

简介 2025年计算机视觉研究进展与应用(ACVRA 2025)将于2025年2月28-3月2日在中国广州召开,会议将汇聚世界各地的顶尖学者、研究人员和行业专家,聚焦计算机视觉领域的最新研究动态与应用成就。本次会议将探讨前沿技术,…

麒麟信安系统隔核后iperf网络测试影响说明

1、背景介绍 采用麒麟信安系统,在飞腾平台(X86平台类似)上进行了系统核隔离,修改了grub.cfg配置文件中的启动项增加isolcpus2-63 操作,隔核后发现40G网络iperf测试存在影响。 测试命令 taskset -c 16-23 iperf -s -…

WPF进阶 | WPF 资源管理与本地化:多语言支持与资源复用

WPF进阶 | WPF 资源管理与本地化:多语言支持与资源复用 前言一、WPF 资源管理基础1.1 什么是 WPF 资源1.2 资源的定义与存储位置1.3 资源的引用方式 二、资源字典的深入应用2.1 创建资源字典2.2 在应用程序中合并资源字典2.3 资源字典的层级结构与合并顺序 三、WPF …

数据结构与算法-动态规划-区间dp(石子合并,环形石子合并,凸多边形的划分,加分二叉树,棋盘分割)

概念 区间动态规划(Interval Dynamic Programming)是动态规划的一个分支,它在处理一些与区间相关的最优解问题上非常有效。以下从基本概念、解题步骤、经典例题、优缺点等方面为你详细介绍: 基本概念:区间 DP 的核心…

32单片机学习记录4之串口通信

32单片机学习记录4之串口通信 前置 STM32的GPIO口有通用模式,复用模式,模拟模式三种,加上输入输出就是有6中对应的模式。 我学习了通用模式,会使用GPIO口使用一些简单外设,如LED,独立按键,红外…

开源、免费项目管理工具比较:2025最新整理30款

好用的开源、免费版项目管理系统有:1.Redmine;2. Taiga;3. OpenProject; 4.ProjectLibre; 5.GanttProject; 6.Tuleap; 7.Trac;8. Phabricator; 9.Notion; 10.…

Android10 音频参数导出合并

A10 设备录音时底噪过大,让音频同事校准了下,然后把校准好的参数需要导出来,集成到项目中,然后出包,导出方式在此记录 设备安装debug系统版本调试好后, adb root adb remount adb shell 进入设备目录 导…

在 Azure 上部署 DeepSeek 并集成 Open WebUI

DeepSeek 是杭州深度求索人工智能基础技术研究有限公司发布的开源大模型,最近是持续火爆,使得官方服务经常不可用。网上各种本地部署和私有部署的文章已经很多,这里我们提供一个全部基于 Azure 的私有部署方案。 使用 Azure AI Foundry 部署…

Springboot整合支付宝支付

支付宝支付功能 步骤一:沙箱配置支付宝沙箱配置 步骤二:使用内网穿透步骤三:开始对接SDK配置文件支付 步骤一:沙箱配置 支付宝沙箱配置 需要有支付宝沙箱:提供一个虚拟的支付环境,用于测验调试&#xff0…

deepseek+kimi一键生成PPT

1、deepseek生成大纲内容 访问deepseek官方网站:https://www.deepseek.com/ 将你想要编写的PPT内容输入到对话框,点击【蓝色】发送按钮,让deepseek生成内容大纲,并以markdown形式输出。 等待deepseek生成内容完毕后&#xff0c…

基于ssm的超市订单管理系统

一、系统架构 前端:jsp | web components | jquery | css | ajax 后端:spring | springmvc | mybatis 环境:jdk1.8 | mysql | maven | tomcat 二、代码及数据 三、功能介绍 01. 登录 02. 首页 03. 订单管理 04. 供应…

AnyPlace:学习机器人操作的泛化目标放置

25年2月来自多伦多大学、Vector Inst、上海交大等机构的论文“AnyPlace: Learning Generalized Object Placement for Robot Manipulation”。 由于目标几何形状和放置的配置多种多样,因此在机器人任务中放置目标本身就具有挑战性。为了解决这个问题,An…

【DeepSeek】在本地计算机上部署DeepSeek-R1大模型实战(完整版)

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈人工智能与大模型应用 ⌋ ⌋ ⌋ 人工智能(AI)通过算法模拟人类智能,利用机器学习、深度学习等技术驱动医疗、金融等领域的智能化。大模型是千亿参数的深度神经网络(如ChatGPT&…

基于全志T507的边缘计算机,推动光伏电站向智能运维转型

智能监控与维护 光伏电站通常分布在广阔的地域内,传统的监控方式往往需要大量的人力物力进行现场检查和数据采集。采用全志T507为核心的嵌入式工控机或边缘计算控制器可以实现光伏电站的实时监测,通过连接传感器网络收集电站各个组件的工作状态信息&…

用户认证练习实验

一.拓扑 二.sw2配置 三.ip配置 四.dhcp分配IP地址 五.安全区域配置 六.防火墙地址组信息 七.管理员 创建管理员角色 创建管理员 启动tenlnet 八.用户认证配置 认证策略 九.安全策略配置

【登录认证】

目录 一. 会话技术1.1 cookie1.2 session1.3 令牌方案 二. JWT令牌三. 过滤器Filter四. 拦截器Interceptor \quad 一. 会话技术 \quad \quad 1.1 cookie \quad \quad 1.2 session \quad \quad 1.3 令牌方案 \quad \quad 二. JWT令牌 \quad \quad 三. 过滤器Filter \quad \quad …

DeepSeek 赋能智慧教育 | 讯方“教学有方”大模型全面接入 DeepSeek!

国产 DeepSeek 大模型以强大的深度学习能力和广泛应用场景迅速火爆全球,其在智能对话、文本创作、语义解析、计算推理、代码生成与补全等多个应用领域,展现出了无与伦比的实力和魅力。2月10日 ,由讯方技术自研的教育行业大模型“教学有方”全…