zoukankan      html  css  js  c++  java
  • 【linux 文件管理】5-节点表结构

    https://edu.aliyun.com/lesson_1733_14276#_14276

    • 查看删除的文件,但空间没有被立即释放
      df -h
      dd if=/dev/zero of=/boot/bigfile bs=1M count=800
      ll /boot/bigfile -h
      rm -f /boot/bigfile
      df
      空间腾出来了,好像没有问题
      dd if=/dev/zero of=/boot/bigfile bs=1M count=800
      df

    假设有个程序正在使用此文件
    vim /boot/bigfile
    rm -f /boot/bigfile
    df 发现空间没有腾出来
    ls /boot/bigfile 文件真删了

    lsof |grep deleted 查看删除未释放空间的文件

    • 清空文件,再删除文件,快速释放空间

    /boot/bigfile
    ll /boot/bigfile
    rm -f /boot/bigfile

    cp file1{,.bak} 备份文件

    • 多文件重名
      rename --help
      rename conf conf.bak *.conf

    • 其他字符文件的创建与删除
      touch '~wang'
      touch ./~wang

    • 目录操作
      tree /root
      tree -L 2 /root
      tree -d /root 只显示文件夹
      ls /etc/rc*
      tree -P /etc/rc*

    • 建立文件夹
      mkdir dir1
      mkdir dir1/dir2/dir3/ -p 创建多文件

    • 删除空文件夹
      rmdir dir1/dir2/dir3/ -p 空了自动删除父目录

    • 索引节点
      文件名 文件内容 文件元数据
      元数据中有个很关键的内容:节点 inode number 分区中唯一
      ls -i
      df
      操作系统看文件是不是一样,看的就是节点号。不会跟人一样看文件名

    这些文件属性存放的地方有个表,称为节点表

    一个分区分成了两部分:一部分是inode节点表,一部分是放数据的真正空间


    上图中,指针直接就指向了数据块

    实际上没那么直接,有可能用到了间接指针

    • 直接指针12个(大致的数量,不精确到具体哪个文件系统)

    • 间接指针

    文件越大间接指针就越多,找起来就慢一点

    ll -i
    rm f1 这个文件删了,节点号就没人用了
    ls -i
    touch f3 f3就用上了前面的节点号
    df -h 查分区大小
    df -i 查节点号数量
    空间满了或者节点号没了,都会出现空间不足

    touch f{1..524288} 参数太多建不了
    echo f{1..524288}| xargs touch 这样可以建立

    rm 文件名删了 inode号回收了 磁盘数据区没删
    !dd 执行历史中的dd开头的命令

  • 相关阅读:
    如何开始学习编程? 这 3 步很重要
    php正则表达式验证手机/固定电话/邮箱/身份证/银行卡自定义函数
    【经验分享】-PHP程序员的技能图谱
    PHP程序员的技能图谱
    PHP程序员要掌握的技能
    冒泡排序
    文件下载方法
    加密,解密方法
    获取真实IP
    二维数组根据某个字段排序
  • 原文地址:https://www.cnblogs.com/sec875/p/13388346.html
Copyright © 2011-2022 走看看