Linux-文件属性-inode

第一列>:inode 索引节点编号

系统读取文件时,首先通过文件名找到inode,然后能读取到文件内容

第二列>:文件类型及权限 共11个字符

1)第1个字符,标识类型,目录,文件,link,套接字等等

2)后面9个字符,是文件权限

3)最后一个 . 点. 做acl , selinux 相关

第三列>:硬连接数量

多入口进入,可以起到备份作用

第四列>:拥有者

第五列>:组

第六列>:文件或目录大小,目录最小为一个块大小 4K

第七列>:修改日期

第八列>:文件名称


深入讲解:

inode: 索引节点(index node)

硬盘要存储数据(房子住人),首先需要分区(打隔断),然后格式化创建文件系统(装修),最后存储数据(住人)

inode,中文索引节点,(index node).在每个linux存储设备或存储设备的分区,被格式化为ext4 文件系统后,一般都有两个部分

1.)inode N个,

inode是用来存储数据属性信息的。inodo属性信息不仅仅包括文件大小,属主,用户组,文件权限,修改时间,类型。还包含指向文件实体的指针功能,但是inode里面不包含文件名!!!文件名在哪里??? 文件名在上层目录的block里

 

inode除了记录文件属性信息之外,还会为每个文件进行信息索引,所以就有了上图第一列inode值。

 

centos 6 中 inode默认256字节,inode的大小是在格式化之前确定。

使用dumpe2fs 查看 inode size

 

查看inode 使用量,剩余量

 

inode 总结:

1)磁盘被分区并格式化为ext4文件系统后会生成一定数量的inode和block

2)inode被称为索引节点,作用是存放文件属性信息以及作为文件的索引指向文件实体,注意inode不包括文件名

3)ext3/ext4文件系统的block存放的是文件的实际内容

4)inode是磁盘上的一块存储空间,centos6 非启动分区的每个inode默认大小是256字节,centos5的是128字节

5)inode 的表现形式是一串字符串,不同的文件对应唯一的inode,在文件系统里是唯一的

6)inode节点相同的文件,互为硬链接,可以认为是一个文件的不同入口

7)ext3/4 文件系统下,一个文件被创建至少占用一个inode和block

8)ext3/4 一个文件正常情况下只能有一个inode

9)block的大小一般有1k,2k,4k.其中引导分区等为1k,其他普通分区为4k

10)如果一个文件较大,可能占用多个block,如果一个文件很小,至少占一个block,剩余浪费,不能存储其他数据

11)inode 大小和总量查看  1->df -i  或者2-> dumpe2fs /dev/sda3 | egrep -i 'block count|inode count'

12)查看inode的总和和使用量 命令:df -i

13)查看文件inode 信息和方法  ls -li  filename 或 stast filename

2.)block N 个 ,block 用来存储实际数据 例如:视频,照片等

1)磁盘读取数据是按block为单位读取的

2)每一个文件可能占用多个block,但是每读一个block就会消耗一次I/O

3)要提升磁盘I/O性能,那么就要尽可那个一次性读取数据量尽量多

4)一个block只能存放一个文件的内容,无论内容有多小.如果block默认是4K大小,那么存放一个1k的文件,剩余的3k就不能存放别的文件.只能浪费.

5)block并非越大越好.block太大对于存放小文件就会浪费磁盘空间.例如:1000k的文件,block大小为4k,占用250block. 如果block默认为1k,则需要占用1000block.

访问效率: IO分别为 250 和 1000 次. 因此4K效率高

6)根据业务需求,确认默认的block大小,如果是大文件(大于16k)一般设置block大一点,小文件(小于1k)一般设置block小一点

7)block太小,例如block 4k,文件都是0.1k的,大量浪费磁盘空间

8)block太大,例如block 1k,文件都是1000k的,消耗磁盘I/O

9)block的设置也是格式化分区的时候, mkfs.ext4 -b 2048 -I 256 /dev/sdb

10)一般企业里文件都会比较大(一般大于4k),block设置大一些

11)ext3/4文件系统(centos5 和 centos 6),一般都设置4k


文件权限:


文件硬连接:

在linux系统中,多个文件指向同一个索引节点(inode)是正常且允许的.

1).硬连接

ln不带参数情况下.创建硬连接

  1. 具有相同inode节点号的多个文件是互为硬连接文件
  2. 删除硬连接文件或者删除源文件任意之一,文件实体并未被删除
  3. 只有删除了源文件以及所有对应的硬连接文件,文件实体才会被删除.
  4. 当所有的硬连接文件及源文件被删除后,在存放新的数据会占用这个文件的空间.或者磁盘fsck检查的时候,删除的数据也会被系统回收
  5. 硬连接文件就是文件的另一个入口(相当于超市的前门,和后门)
  6. 可以给文件设置硬连接文件,来防止重要文件被误删
  7. 通过 ln 源文件 硬连接文件 , 即可以完成创建硬连接
  8. 硬连接文件是普通文件,因此rm命令可以删除
  9. 对于静态文件(没有进程正在调用的文件)来讲,当对应硬连接数为0(i_link),文件就被删除.i_link的查看方法(ls -l 结果的第三列)

2).软连接(符号连接)

ln -s 创建软连接


对于目录的链接小结:

  1. 对于目录,不可以创建硬链接,但是可以创建软链接
  2. 目录的硬链接不能跨越文件系统
  3. 每个目录下面都有一个硬连接"."号,和对应上级目录的硬链接".."
  4. 在父目录里创建一个子目录,父目录的链接数增加1(子目录里都有..来指向父目录),但是在父目录里创建文件,父目录的链接数不会增加.

 


文件的时间戳

modify 修改 -mtime 修改文件内容的时候

change 改变时间 -ctime 文件的属性改变时ctime会改变

access 访问时间 -atime 访问文件的时候会改变

ls -ls  --time-style=long-iso  --time-style 参数 格式化时间

 

-------------------- 阑心而慧智,心静而致远. --------------------
原文地址:https://www.cnblogs.com/mirrorlake/p/7366590.html