第一列>: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不带参数情况下.创建硬连接
- 具有相同inode节点号的多个文件是互为硬连接文件
- 删除硬连接文件或者删除源文件任意之一,文件实体并未被删除
- 只有删除了源文件以及所有对应的硬连接文件,文件实体才会被删除.
- 当所有的硬连接文件及源文件被删除后,在存放新的数据会占用这个文件的空间.或者磁盘fsck检查的时候,删除的数据也会被系统回收
- 硬连接文件就是文件的另一个入口(相当于超市的前门,和后门)
- 可以给文件设置硬连接文件,来防止重要文件被误删
- 通过 ln 源文件 硬连接文件 , 即可以完成创建硬连接
- 硬连接文件是普通文件,因此rm命令可以删除
- 对于静态文件(没有进程正在调用的文件)来讲,当对应硬连接数为0(i_link),文件就被删除.i_link的查看方法(ls -l 结果的第三列)
2).软连接(符号连接)
ln -s 创建软连接
对于目录的链接小结:
- 对于目录,不可以创建硬链接,但是可以创建软链接
- 目录的硬链接不能跨越文件系统
- 每个目录下面都有一个硬连接"."号,和对应上级目录的硬链接".."
- 在父目录里创建一个子目录,父目录的链接数增加1(子目录里都有..来指向父目录),但是在父目录里创建文件,父目录的链接数不会增加.
文件的时间戳
modify 修改 -mtime 修改文件内容的时候
change 改变时间 -ctime 文件的属性改变时ctime会改变
access 访问时间 -atime 访问文件的时候会改变
ls -ls --time-style=long-iso --time-style 参数 格式化时间