对于Unix系列的操作系统,大多都有v节点。但是对于linux来说,只有通用的i节点,却没有v节点。

下面来探讨一下,linux下的i节点。

linux中,文件查找不是通过文件名称来查找的。实际上是通过i节点来实现文件的查找定位的。我们可以形象的将i节点看做是一个指针fip。当文件存储到磁盘上去的时候,文件肯定会存放到一个磁盘位置上,可以这样想象,既然文件数据是存放在磁盘上的,如果我们知道这个文件数据的地址,当我们想要读写文件的时候,我们是不是直接使用这个地址去找到文件就可以了呢?

是的,linux下,i节点其实就是可以这么认为,把i节点看作是一个指向磁盘上该文件存储区的地址。只不过这个地址我们一般是没办法直接使用的,而是通过文件名来间接使用的。事实上,i节点不仅包含了文件数据存储区的地址,还包含了很多信息,比如数据大小,等等文件信息。但是i节点是不保存文件名的。文件名是保存在一个目录项中。每一个目录项中都包含了文件名和i节点。

我们可以通过一个图来看看目录项,i节点,文件数据四者之间的关系。

从上图可以看到,目录项中包含了文件名和i节点。

同时,你会发现上图中,目录项A和目录项B的i节点指向同一个存储区,其中这个存储区存放的是printf("ha")的数据。

也就是意味着helloA.c和helloB.c的内容是一样的。

这就引出了一个硬链接和符号链接的概念

硬链接  ln -d

符号链接 ln -s。

要想得到helloA.c和helloB.c这种关系,我们可以使用如下命令:

#ln -d  helloA.c  helloB.c

这样,就得到了helloA.c的硬链接helloB.c

对于硬链接来说。如果删掉源文件helloA.c,那么磁盘上数据文件时不会删除的。因为i节点上记录了该文件的硬链接数。只有硬链接数是0的时候,删除文件名的时候,该数据在磁盘上才会删除。

也就是说。这里,如果我们使用命令:

# rm  -rf  helloA.c

helloB.c同样可以正常使用,其内容就是printf("ha");

但是如果是符号链接:

#ln -s  helloB.c  helloC.c

这就是所谓的符号链接,符号链接其实是文件索引的索引。当源文件helloB.c删除之后,其实磁盘数据文件还在,helloC.c也无法使用。

符号链接包含了一个文件名的路劲,如果这个文件名被删除,这符号链接自然就不能正常工作了。

个人理解:

硬链接:硬链接只是复制了文件的inode(节点),inode是操作系统指定文件的依据,每个文件有且只有一个inode,所以操作硬链接就是操作源文件。

软连接:就相当于windows中的快捷方式,是用路径指到文件的,删除源文件会对其造成影响。

linux文件i节点,深入理解linux中i节点(inode)相关推荐

  1. Linux 文件区块连续吗,关于Linux文件系统的的简单理解和认识

    关于Linux文件系统的的简单理解和认识 关于文件系统的运作,这与操作系统带的档案数据有关.例如Linux操作系统的档案权限(rwx)与文件属性(拥有者,群组,时间参数等).文件系统通常会将这两部分的 ...

  2. linux文件未识别,linux的内核文件vmlinuz介绍-深入理解Linux重定向的使用-网卡eth0,未识别的端口的解决方法_169IT.COM...

    介绍:Linux重定向是指修改原来默认的一些东西,对原来系统命令的默认执行方式进行改变,比如说简单的我不想看到在显示器的输出而是希望输出到某一文件中就可以通过Linux重定向来进行这项工作. Linu ...

  3. linux 文件夹换所属用户,Linux中账号管理之权限管理(下)

    linux中的账号管理我们在前面两张已经介绍了一些用户和组的相关概念,常用的配置文件,命令的使用.现在我们来看看账号管理中最傲娇的部分就是我们的权限管理. 一.简单介绍权限的概念 以install.l ...

  4. linux文件一列加1,Linux命令(1)-创建文件

    版本:centos7 1.可以使用cat创建一个新的文件 命令:cat>>filename 使用cat创建文件时,以系统默认的文件属性作为新文件的属性,并接受键盘输入作为文件的内容.输入结 ...

  5. Linux/Centos7系统管理之深入理解Linux文件系统与日志分析

    前言:inode(文件节点)与block(数据块)硬链接与软连接恢复误删除的文件 (即rm-rf 的操作,可以先进行备份的操作,然后可以进行恢复ext4和xfs文件系统皆可)日志文件的分类用户日志与程 ...

  6. mac同步linux文件夹在哪里设置,Linux和Mac上的一些特殊文件将不再同步

    近日有用户报告, Mac/Linux上创建的某些文件, 无法成功同步到Windows平台上. 我们对这个问题进行了修正.  这个修正可能会影响到Linux和Mac用户中的极少数, 大概为数百位用户. ...

  7. window环境读linux文件,Windows本地环境和Linux腾讯云服务器之间传输文件的方法

    通过WinSCPWinSCP简介: WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端.同时支持SCP协议.它的主要功能就是在本地与远程计算机间安全的复制文件. 与使用FTP上 ...

  8. linux文件权限管理实验心得,Linux+文件权限管理实验

    主机安全-- Linux文件权限管理实验 对于文件 /etc/passwd,该文件的属组(root)可读.不可写,不可执行 对于文件 /etc/shadow,该文件的属组(root)不可读.不可写,不 ...

  9. linux 文件755权限的意思,Linux文件和目录的777、755、644权限解释

    Linux文件和目录的权限 1.文件权限 在linux系统中,文件或目录的权限可以分为3种: r:4 读 w:2 写 x:1  执行(运行) -:对应数值0 数字 4 .2 和 1表示读.写.执行权限 ...

  10. linux文件操作和目录操作,Linux基础操作1——文件和目录

    Linux基础操作1--文件和目录 一.目录 1.mkdir dirname 建立子目录. 注意:用户不能在一个不存在的目录中建立子目录. 2.mkdir data 在当前目录下建立子目录data 3 ...

最新文章

  1. spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件)
  2. 选择排序法python详解-Python选择排序算法(三)
  3. 搞定常见垃圾收集器【Java】
  4. vs最好的版本_Win10 环境下,LightGBM GPU 版本的安装
  5. SCSM 2012 SP1创建SCOM连接器
  6. 自锁时间电路plc_PLC对两台三相交流电动机联锁启停控制
  7. 京东公布3.8“她的节”消费数据:奢品服饰成交额同比增长170%
  8. 前端在linux中常用的命令,前端在SSH上常用的Linux命令
  9. vue获取接口id_05vue2.0-vue中_接口的调用
  10. web前端效率提升之禁用缓存-遁地龙卷风
  11. 达梦数据库DM7入门教程-安装
  12. python 3d模型制作软件_最好用的9款3D建模软件
  13. 软件测试工程师太累了?
  14. 注册CSDN七年才发布第一篇博文是什么感觉
  15. CAD二次开发(C#) 第二节
  16. 超越传统微调!Meta新作VPT:视觉Prompt来了!冻结主干,仅调节1%参数,性能提升显著!...
  17. 2020我也当了面试官-java面试题之一
  18. pytorch安装和tensorflow环境搭建和cuda加速和cudann安装教程记录日期2022.10.20日
  19. ATA port 上插入盘后的错误处理(AHCI)
  20. 【C语言】assert() 断言的作用

热门文章

  1. at org.apache.hadoop.util.RunJar.main(RunJar.java:153)
  2. iOS开发隐藏tabBar的问题
  3. 图片呈现jQuery中fadeIn、fadeOut、fadeTo的用法(图片隐藏与显示)
  4. 基于消息队列的UDP并发服务器v1
  5. SharePoint 站点出现Http 503 错误
  6. c++语言表白超炫图形_让C/C++程序员告诉你什么叫浪漫,表白黑科技,炫酷多彩求爱利器...
  7. C++类型转换实现不同类型相加【复数与double类型相加】
  8. php如何每天自调用不同的ccs,Python-ccs高级选择器 盒模型
  9. 微课|玩转Python轻松过二级(2.4节):常用内置函数用法精要2
  10. 蒙特.卡罗方法求解圆周率近似值原理与Python实现