Linux之索引节点inode(index node)

2023-05-16

inode就是索引节点,它用来存放档案及目录的基本信息,包含时间、档名、使用者及群组等。

 

inode 是 UNIX/Linux 操作系统中的一种数据结构,其本质是结构体

它包含了与文件系统中各个文件相关的一些重要信息

 

每一个索引节点都是一个表项,包含有关文件的信息(元数据):

  • 文件类型,权限,UID,GID 

  • 链接数(指向这个文件名路径名称个数) 

  • 该文件的大小和不同的时间戳 

  • 指向磁盘上文件的数据块指针 

  • 有关文件的其他数据

 

如图:

    因此,在Linux中创建文件系统时,同时将会创建大量的inode通常,文件系统磁盘空间中大约百分之一空间分配给了inode表

    文件引用的是一个inode号,因此,当用户搜索或者访问一个文件时,Linux系统通过 inode 表查找正确的 inode 编号。在找到 inode 编号之后,相关的命令才可以访问该 inode ,并对其进行适当的更改,所以,一个目录是目录下的文件名和文件inode号之间的映射,如下图:

使用stat filename可以查看

使用df -i 可以查看分区的inode使用率

使用 ls -i filename可以查看inode号


    

    使用cp命令时,系统会分配一个空闲的inode号,在inode表中生成新条目 在目录中创建一个目录项,将名称与inode编号关联 拷贝数据生成新的文件

 

    使用rm命令时,会使链接数递减,从而释放的inode号可以被重用,把数据块放在空闲列表中,删除目录项数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖。

 

    使用mv命令时,如果mv命令的目标和源在相同的文件系统,作为mv命令,用新的文件名创建对应新的目录项,删除旧目录条目对应的旧的文件名,不影响inode表(除时间戳)或磁盘上的数据位置,没有数据被移动!如果目标和源在一个不同的文件系统,mv相当于cp和rm

 


硬链接

硬链接就是一个文件拥有多个文件名字,多个文件名都指向同一个文件

当硬连接建立以后,硬连接双方任何一个对象被修改,都会造成对应的连接对象被修改

硬连接是不会建立inode的,他只是在文件原来的inode link count域再增加1而已,也因此硬链接是不可以跨越文件系统的

特性:

  •     硬链接不允许给目录创建,也不能跨分区创建

  •     创建硬链接会增加额外的记录项以引用文件 

  •     每个文件引用相同的inode号 

  •     创建时链接数递增 

语法:ln filename linkfilename


软链接,又称符号链接,和Windows系统的快捷方式类似

软链接文件只是其源文件的一个标记,当删除了源文件后,链接文件不能独立存在,虽然仍保留文件名,但却不能查看软链接文件的内容了

特性:

  •    一个符号链接指向另一个文件

  •    可以使用ls - l的 显示链接的名称和引用的文件

  •    一个符号链接的内容是它引用文件的名称 

  •    可以对目录进行 ,可以跨分区

  •    指向的是另一个文件的路径;其大小为指向的路径字符串的长度;

        不增加或减少目标文件inode的引用计数; 

语法:ln -s filename linkfilename

    


file命令

该命令可以用来识别文件类型,确定文件内容

它可以检查文件类型,然后确定适当的开发命令或应用程序使用

语法:  file [OPTION...] [FILE...]

    

参数:

  • -b列出文件辨识结果时,不显示文件名称。 

  • -c详细显示指令执行过程,便于排错或分析程序执行形 

  • -f列出文件中文件名的文件类型 

  • -F使用指定分隔符号替换输出文件名后默认的”:”分隔符 

  • -i输出mime类型的字符串 

  • -L查看对应软链接对应文件的文件类型 

  • -z尝试去解读压缩文件的内容 

  • --help显示命令在线帮助

    

查看文件类型:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux之索引节点inode(index node) 的相关文章

随机推荐

  • 安装Visual Studio 2015时出现安装包丢失或损坏

    1 现象描述 在线安装vs时 xff0c 在线下载一直为0 xff0c 提示网络异常 xff0c 检查网络 xff1b 实际网络是能联网的 离线安装ISO xff0c 安装1分钟左右 提示安装包损坏或丢失 xff0c 选择从inter下载或
  • 数据库实验-数据查询练习

    用SQL语句完成以下查询 1 查询所在系为 CS 的学生学号和姓名 xff1b select sno sname from student where sdept 61 39 CS 39 2 查询选修了3号课程的学生学号 xff1b sel
  • web前端播放视频基础(多种格式,mp4, ogg, flv)(普通项目和vue项目)

    前端播放视频 满足一般播放条件 话不多说 先上代码 以下包含我能做出来可以做出来播放的视频格式 测试ok 可能还有ogg和wmv的格式可以播放 但我没测试通过 所以不展示 span class token keyword if span s
  • javascript中正则匹配多个条件, 常用正则匹配, 正则详解

    javascript中正则匹配多个条件 常用正则匹配 正则表达式常用方法实现其他的常用正则匹配详解 注意 本篇文章是根据在下日常编码过程中逐渐丰富的 越往后看 收获越丰富 收藏起来以后随时回顾 准备工作 1 汉字和unicode码的在线转换
  • antd react ProTable 基本使用

    antd react pro系列 ProTable 基本使用 一 安装二 常用字段 antd 全称 Ant Design 是目前来说运用最广泛的 react 的 ui 框架 下文就用略写 antd 代替了 pro系列不做过多解释 毕竟ui框
  • canvas插件 fabric.js 使用

    fabric js使用 fabric js 是 常用的 canvas 插件1 在项目中使用2 特殊用法 基本设置 画板数据的导入导出 遮罩 Pattern 引用官网案例 多个对象合并 并设置为 fabric 背景 适用于变色和更多场景 把
  • 前端 百度地图 javascript api 在线地图, 离线地图

    前端 百度地图 javascript api 在线地图 离线地图 在线地图登录百度api获取key注册为个人开发者后 创建应用 离线地图 瓦片地图 下载离线瓦片地图二 下载api js 一些常用api难找见的api 在线地图 在线地图 百度
  • 基于 jquery imagesloaded masonry 实现的瀑布流图片展示

    基于 jquery imagesloaded masonry 实现的瀑布流图片展示 基于 jquery imagesloaded masonry 实现的瀑布流图片展示简述 xff0c 版本 xff0c 及插件案例htmlcssjs 基于 j
  • 微信小程序开发双重for循环, wx: if else 语法

    微信小程序开发 双重for循环 多重for循环 重点在于 wx for item 61 34 problemItem 34 和 wx for index 61 34 idx 34 确定循环的 item 和index 理论上可以实现无上线条循
  • react hocks ggeditor 脑图开发(双向细目表), 实用技巧

    ggeditor脑图开发 目录 配置说明api介绍 xff0c 引入插件 xff0c 获取api xff08 withPropsAPI xff09 xff0c 获取node api xff0c 常用api汇总 xff0c 绑定事件功能实现
  • TX2开发板CMake Error at CMakeLists.txt:11 (message): FATAL: In-source builds are not allowed.

    因为之前已经cmake过 把之前cmake生成的build目录中的文件 xff0c 以及opencv目录下生成的CmakeCache txt删除就可以解决了
  • 玩客云刷ARMBIAN当服务器过程记录

    玩客云的可玩性 1 可以刷成电视 43 游戏盒子的双系统 也可以刷成单独的电视盒子和游戏盒子 不过因为内存有限放不了多少游戏 还是建议用外置SD卡存储游戏比较合适 2 刷成Armbian linux系统 xff08 可以实现docker 可
  • Android9.0从系统层面修改android_id

    原因 按照android官方说明 xff0c android id会随着恢复出厂设置或重新烧录系统 xff0c 或切换用户登陆都会重新随机生成新的anroid id 因此对于一些依赖anroid id做唯一识别标识之一的软件来说就有问题了
  • Linux系统下基于Docker安装Yapi,并且迁移Yapi数据

    本文主要讲四个部分 xff1a 1 什么是Yapi 2 Centos7 下基于docker安装Yapi 3 Yapi数据迁移 4 利用Nginx反向代理 什么是Yapi YApi 是高效 易用 功能强大的 api 管理平台 xff0c 旨在
  • C语言多文件编程基本格式

    1 背景 xff1a 用一个丢骰子的简单案例熟悉了C语言多文件编程该咋写 2 格式 xff08 1 xff09 主函数文件main c 文件头part1 所有要使用的函数 include include include 文件头part2 放
  • STM32汇编程序及点灯实验

    目录 一 Keil下编写汇编程序1 新建工程2 配置环境3 测试代码 二 HEX文件格式说明1 简介2 格式说明3 举例说明 上述工程生成的 hex文件 三 基于STM32 汇编每间隔1秒钟闪烁一次LED的程序 一 Keil下编写汇编程序
  • c++单向链表逆序

    include lt iostream gt using namespace std struct node int data node next node createlist int n 创建一个链表 xff0c n为存储的数据个数 n
  • 目标检测6--NanodetPlus算法分析

    文章目录 1 简介2 辅助训练模块Assign Guidance Module3 损失函数4 标签匹配策略5 后处理介绍6 特征融合参考资料 欢迎访问个人网络日志 x1f339 x1f339 知行空间 x1f339 x1f339 1 简介
  • Couldn't find executable named map_saver below /opt/ros/indigo/share/map_server

    在使用 Mastering ROS for Robotics Programming PACKT 2015 学习ros xff0c 学习到第四章的时候 xff0c 先是安装Navigation一直找不到dependencies 换了源进行u
  • Linux之索引节点inode(index node)

    inode就是索引节点 xff0c 它用来存放档案及目录的基本信息 xff0c 包含时间 档名 使用者及群组等 inode 是 UNIX Linux 操作系统中的一种数据结构 xff0c 其本质是结构体 它包含了与文件系统中各个文件相关的一