linux文件管理表,Linux的文件管理(三)

一、索引节点:

1、indoe表中包含文件系统所有文件列表

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

文件类型,权限,UID,GID;链接数(指向这个文件名路径名称个数);该文件的大小和不同的时间  戳;指向磁盘上文件的数据块指针;有关文件的其他数据。

2、查看节点编号:#ls -i

f0f3a572064d64409ab9b1ccfb49fc58.png

3、indoe表结构:

bcebf1c7ca973896e973b54e786f2b97.png

原理图如下:

e7ded1f7e44219b712a0275a2de96690.png

eb00e0d39138faa7e542a87f8b5bd78c.png

4、节点编号在不同的分区下可以有相同的编号;同一分区下不能够出现同样的节点编号。(如:/boot和/testdir是两个分区,但都有同样的131和132节点编号,见下图:)

500d249d080978855ce295ad09037817.png

8ce6277ec618a0bc0fab7bc577e813be.png

但在同一分区下如果出现同样的节点编号,只能是同一个文件(硬链接产生指向同一个文件)。如下图,同一分区内有相同的节点编号,只能是同一个文件,使用硬链接指向:

c90461c8d57489edd8c03783e9e46005.png

5、链接数:

a8cb728eb176628f88c2729559e1e243.png

二、目录:

文件引用一个是inode号

人是通过文件名来引用一个文件

一个目录是目录下的文件名和文件inode号之间的映射

Inode table:

c334591496b238705db903bad1765f11.png

三、cp、rm、mv和inode:

在CP的命令:分配一个空闲的inode号,在inode表中生成新条目;在目录中创建一个目录项,将名称与inode编号关联;拷贝数据生成新的文件

rm命令:链接数递减,从而释放的inode号可以被重用;把数据块放在空闲列表中;

删除目录项,数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖。

如果mv命令的目标和源在相同的文件系统,作为mv命令:

用新的文件名创建对应新的目录项;删除旧目录条目对应的旧的文件名;

不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动;如果目标和源在一个不同的文件系统,mv相当于cp和rm

四、硬链接和软链接:

硬链接: 创建硬链接会增加额外的记录项以引用文件,对应于同一文件系统上一个物理文件,每个          目录引用相同的inode号,创建时链接数递增。

删除文件时:rm命令递减计数的链接,文件要存在,至少有一个链接数;

当链接数为零时,该文件被删除;

不能跨越驱动器或分区

使用格式:# ln file [linkname]

4e8da0e0522f3d4f1314485f4f514e4d.png

软链接:一个符号链接指向另一个文件,ls -l的显示链接的名称和引用的文件,一个符号链接的         内容是它引用文件的名称

可以对目录进行,可以跨分区,指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数;

使用格式:# ln –s file[linkname]

五、查看文件的内容:

文件可以包含多种类型的数据;检查文文件类型,然后确定适当的开放命令或应用程序使用。

格式:file[options] ...Option:

选项使用:-b列出文件辨识结果时,不显示文件名称。

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

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

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

-i输出mime类型的字符串

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

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

--help显示命令在线帮助

eg:file -b 的使用如下图:

191e0f09f435457b58f8110ca3654979.png

查看一个系统分区下每个分区最多能支持的inode节点号(在Linux文件系统,inode节点编号是不支持拓展的):

命令:# df -i

0be49dadeb581ff1a83f74e2a2fa47ff.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节点号)

###

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值