【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开头的命令

原文地址:https://www.cnblogs.com/sec875/p/13388346.html