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

[经验分享] Linux的文件管理(三)

[复制链接]

尚未签到

发表于 2018-5-20 06:13:58 | 显示全部楼层 |阅读模式
  一、索引节点:
  1、indoe表中包含文件系统所有文件列表
  一个节点(索引节点)是在一个表项,包含有关文件的信息(元数据),包含:
文件类型,权限,UID,GID;链接数(指向这个文件名路径名称个数);该文件的大小和不同的时间  戳;指向磁盘上文件的数据块指针;有关文件的其他数据。
  2、查看节点编号:#ls -i
DSC0000.png

  

  3、indoe表结构:
DSC0001.png

  原理图如下:
DSC0002.png

DSC0003.png

  4、节点编号在不同的分区下可以有相同的编号;同一分区下不能够出现同样的节点编号。(如:/boot和/testdir是两个分区,但都有同样的131和132节点编号,见下图:)
   DSC0004.png
   DSC0005.png
  但在同一分区下如果出现同样的节点编号,只能是同一个文件(硬链接产生指向同一个文件)。如下图,同一分区内有相同的节点编号,只能是同一个文件,使用硬链接指向:
DSC0006.png

  

  5、链接数:
DSC0007.png

  

  二、目录:
  文件引用一个是inode号
  人是通过文件名来引用一个文件
  一个目录是目录下的文件名和文件inode号之间的映射
  Inode table:
DSC0008.png

  三、cprmmvinode
     在CP的命令:分配一个空闲的inode号,在inode表中生成新条目;在目录中创建一个目录项,将名称与inode编号关联;拷贝数据生成新的文件
  rm命令:链接数递减,从而释放的inode号可以被重用;把数据块放在空闲列表中;
删除目录项,数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖。
如果mv命令的目标和源在相同的文件系统,作为mv命令:
用新的文件名创建对应新的目录项;删除旧目录条目对应的旧的文件名;
不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动;如果目标和源在一个不同的文件系统,mv相当于cp和rm
  、硬链接和软链接
    硬链接: 创建硬链接会增加额外的记录项以引用文件,对应于同一文件系统上一个物理文件,每个          目录引用相同的inode号,创建时链接数递增。
  

  删除文件时:rm命令递减计数的链接,文件要存在,至少有一个链接数;
    当链接数为零时,该文件被删除;
  不能跨越驱动器或分区
  使用格式:# ln file [linkname]
DSC0009.png
  软链接:一个符号链接指向另一个文件,ls -l的显示链接的名称和引用的文件,一个符号链接的         内容是它引用文件的名称
  可以对目录进行,可以跨分区,指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数;
     使用格式:# ln –s file[linkname]
  五、查看文件的内容:
  文件可以包含多种类型的数据;检查文文件类型,然后确定适当的开放命令或应用程序使用。
  

  格式:file[options] <filename>...Option:
  选项使用:-b列出文件辨识结果时,不显示文件名称。
-c详细显示指令执行过程,便于排错或分析程序执行
-f列出文件中文件名的文件类型
-F使用指定分隔符号替换输出文件名后默认的”:”分隔符
-i输出mime类型的字符串
-L查看对应软链接对应文件的文件类型
-z尝试去解读压缩文件的内容
--help显示命令在线帮助
  eg:file -b 的使用如下图:
     DSC00010.png

  查看一个系统分区下每个分区最多能支持的inode节点号(在Linux文件系统,inode节点编号是不支持拓展的):
  命令:# df -i
DSC00011.png

  ### 查看用户:getent  passwd
更改用户:sed –I ‘s/chesfer/che/g’/etc/passwd
      sed –I ‘s/chesfer/che/g’ /etc/shadow
      sed –I ‘s/chesfer/che/g’ /etc/gshadow
      sed –I ‘s/chesfer/che/g’ /etc/group
  watch –n 1 ‘df –I /boot’  一秒扫描一次
  for id in {1..19456} do touch/boot/f$id;echo f$id is created;done  指定生成一定数量的空文件(测试消耗inode节点号)
  ###
  

运维网声明 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-462273-1-1.html 上篇帖子: Linux 线程 下篇帖子: 【linux】 锁的条件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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