索引节点

2017-10-20  本文已影响8人  Miracle001
数据 内容
元数据 meta data 属性 
stat file  查看该文件的元数据(包括inode号)
  ll -i 
  ls -i 查看inode号

索引节点
index node = inode
inode表:包含文件系统所有文件列表

一个节点包括
    元数据
    文件类型 权限、UID、GID
    链接数(指向这个文件名路径名称个数)
    该文件大小和不同时间戳
    指向磁盘上文件的数据块指针
    有关文件的其他数据
一般,inode表占用文件系统磁盘空间的1%
引用文件:inode号,文件名,二者之间的映射

节点编号
    每个分区,独立分配,互不干扰
    在分区中,有个数限制
    节点编号在磁盘空间有限,可以被回收利用
    分配节点编号,是在分区中
    同一分区,inode编号是唯一的
    不同分区,inode编号可以不同

目录是一个特殊的文件
ls -di /  查看根的编号
    7.3 只要是/的分区,都是64开始
    6.9 只要是/的分区,都是2开始
ls -di /boot  /app  /proc  /sys
        64     64     1      1
        2       2     1      1

df -i  分区使用的节点编号情况
dd if=/dev/zero of=/boot/bigfile bs=1M count=1024  创建文件bigfile,每块1M,1024块
df -h  查看文件空间使用情况(size)

创建一个循环:
    for i in {...};do touch file$i;echo file$i is created;done
    echo file{...} | xargs touch/rm 
    echo * | xargs rm(?)
看执行情况:watch -n1 df -i  1秒执行1次这个命令
  节点编号使用完,但是磁盘空间仍有剩余,虽然系统显示节点编号已经用完;
  但是系统会预留一部分空间,仍可以创建节点号,一些小命令不能运行;
  但是节点编号是可以耗尽的;
cp命令执行时,分配一个空间的inode号,在inode表中生成新条目,在目录中创建一个目录项(文件名称);
拷贝数据时,inode号与名称相关联,生产新文件;

删除循环(目录过多)
    ls | xargs rm  (ls列表——xargs——rm,一个一个删)
mv与inode
    在同一个分区中,移动速度快,不同分区移动速度慢
    创建:新的文件名 对应 新的目录项
    删除:旧的文件名 对应 旧的目录项
    不变:inode表(除了时间戳)或磁盘上的数据位置,数据没有被移动
rm与inode
    链接数递减,释放inode号(可以被重新使用)
    数据块放在空闲列表中
    删除目录项
    数据实际上不会马上被删除,但当另一个文件使用数据块时,将被覆盖
    被删除文件,空间会被标记,提示可以使用

文件粉碎工具
    /var/log/messages  日志文件(文本文件)
    shred --help
    shred -uzvn10 messages(文件名)
        u 删除 
        z 覆盖
        v 显示过程
        n 次数

ls -l   显示链接名称和引用的文件
ls -ila
一个inode编号  对应多个链接数(文件名)

硬链接(用的少)
    ln A B  参考A建立B文件
    二者的inode号一样
    AB地位平等
    多个名字
    对应同一分区(文件系统)的一个物理文件
        chown feng fiel_A  把A的所有者改为feng,则B的所有者也变为feng
    每个目录的inode号一样
    创建是,链接数递增
    删除文件时,链接数递减
    文件至少存在一个链接数,链接数为0,则该文件被删除
    不能跨设备(分区)
    不能针对目录(A不能为目录)
    不依赖原始文件
应用
    哪个名字用起来方便,就把这个名字放到易找到的地方
eg
    ln /etc/sysconfig/network-script/if-eth0(网卡名称)  /etc/eth0
    cat /etc/eth0 = cat /etc/sysconfig/network-script/if-eth0
    针对文件路径
    别名时针对命令
上一篇下一篇

猜你喜欢

热点阅读