设为首页 收藏本站
查看: 605|回复: 0

[经验分享] Linux之索引节点inode(index node)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-8-2 09:45:50 | 显示全部楼层 |阅读模式
inode就是索引节点,它用来存放档案及目录的基本信息,包含时间、档名、使用者及群组等。

inode 是 UNIX/Linux 操作系统中的一种数据结构,其本质是结构体
它包含了与文件系统中各个文件相关的一些重要信息

每一个索引节点都是一个表项,包含有关文件的信息(元数据):
  • 文件类型,权限,UID,GID
  • 链接数(指向这个文件名路径名称个数)
  • 该文件的大小和不同的时间戳
  • 指向磁盘上文件的数据块指针
  • 有关文件的其他数据



如图:
1469795301935176.jpg


    因此,在Linux中创建文件系统时,同时将会创建大量的inode通常,文件系统磁盘空间中大约百分之一空间分配给了inode表
    文件引用的是一个inode号,因此,当用户搜索或者访问一个文件时,Linux系统通过 inode 表查找正确的 inode 编号。在找到 inode 编号之后,相关的命令才可以访问该 inode ,并对其进行适当的更改,所以,一个目录是目录下的文件名和文件inode号之间的映射,如下图:
1469796294386040.jpg
使用stat filename可以查看
1469796507946374.jpg
使用df -i 可以查看分区的inode使用率
1469796584496549.jpg
使用 ls -i filename可以查看inode号
1469796659258103.jpg



    使用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的引用计数;



语法:ls -s filename linkfilename

    1469798196975660.jpg


file命令
该命令可以用来识别文件类型,确定文件内容
它可以检查文件类型,然后确定适当的开发命令或应用程序使用

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

参数:
  • -b列出文件辨识结果时,不显示文件名称。
  • -c详细显示指令执行过程,便于排错或分析程序执行形
  • -f列出文件中文件名的文件类型
  • -F使用指定分隔符号替换输出文件名后默认的”:”分隔符
  • -i输出mime类型的字符串
  • -L查看对应软链接对应文件的文件类型
  • -z尝试去解读压缩文件的内容
  • --help显示命令在线帮助


查看文件类型:
1469798611791862.jpg

1469798779261493.jpg


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-252013-1-1.html 上篇帖子: Linux 之alias 命令别名 下篇帖子: centos 升级4.0 内核
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表