Linux使用inode删除乱码文件

背景说明

我们在系统的使用过程中,有时候会遇到一些乱码或者奇怪的文件名,无法通过删除文件名的方式来进行删除,这里我们可以使用inode来进行文件的删除。

inode科普

理解inode,需要要从文件储存说起:
文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。
操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。
文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。
每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。有时,文件名包含特殊字符,无法正常删除。这时,直接删除inode节点,就能起到删除文件的作用。

删除步骤

  1. 查看文件的inode 执行ls -li操作,可以看到文件的相关信息
yusy@CN0014010803M:~/Downloads>$ ls -li
total 20903040
183485123 -rw-r--r--@   1 yusy  Domain Users   10486401  3  8  ''$'\237''FU@'$'\371'
96019894  -rw-r--r--@   1 yusy  Domain Users     139546  5 16  '$'\360''i=Fr'$'\300\2451\376\366''6'$'
  1. 最前面的就是文件的inode,使用下面的命令进行删除
yusy@CN0014010803M:~/Downloads>$ find . -inum 183485123 -exec rm -i {} \;
yusy@CN0014010803M:~/Downloads>$ find . -inum 96019894 -exec rm -i {} \;
posted @ 2025-08-01 17:31  yuhaohao  阅读(15)  评论(0)    收藏  举报