根据inode删除文件

发布时间 2023-05-17 14:00:19作者: 坚强的小蚂蚁

参考:https://blog.csdn.net/smilejiasmile/article/details/121162741

文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。

操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。

文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。

每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。

可以使用stat命令查看文件的inode信息

root@hong:~/test# stat 2.txt
  File: 2.txt
  Size: 6               Blocks: 8          IO Block: 4096   regular file
Device: fc01h/64513d    Inode: 723814      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2023-05-17 13:34:36.348743731 +0800
Modify: 2023-05-17 13:34:36.348743731 +0800
Change: 2023-05-17 13:34:36.348743731 +0800
 Birth: -

 

一般操作系统分配的 inode 数量是完全够用的,但出于一些程序或人为的意外可能会导致操作系统的 inode 溢出,查看系统分区下 inode 的使用情况

root@hong:~/test# df -ih
Filesystem     Inodes IUsed IFree IUse% Mounted on
udev             109K   418  108K    1% /dev
tmpfs            115K   637  115K    1% /run
/dev/vda1        2.5M  521K  2.0M   21% /
tmpfs            115K     2  115K    1% /dev/shm
tmpfs            115K     2  115K    1% /run/lock
tmpfs            115K    18  115K    1% /sys/fs/cgroup
overlay          2.5M  521K  2.0M   21% /var/lib/docker/overlay2/e8a2c8d70f99b0ed6466c960a591d2e8e030f5a83d7d12893ba77697d0881830/merged
tmpfs            115K    21  115K    1% /run/user/0

 

有时候文件名太复杂不好删除,可以通过inode的方式删除

root@hong:~/test# ls -i
723814 2.txt

root@hong:~/test# find ./ -inum 723814 | xargs rm 
或者使用find ./ -inum 723814 -delete