📑 文章章节大纲 (点击平滑直达)
一、背景与问题
在 Linux 文件管理中,有时会遇到带有特殊字符、隐藏乱码或空格的文件名(例如包含控制字符或 hello world 文件名),导致执行普通 rm 命令时报错或无法定位目标。
此时可以利用文件系统底层的 inode 编号 直接定位并安全清理。
二、查看文件的 inode 编号
通过 ls -il 选项可以在第一列输出文件的 inode 索引编号:
[root@thexqf ~]# ls -il
total 244692
25993 -rw-------. 1 root root 1316 May 14 2018 anaconda-ks.cfg
在上面的输出中,anaconda-ks.cfg 的 inode 编号为 25993。
三、根据 inode 号执行删除
方法 1:使用 find 命令的 -delete 或 -exec 选项
find . -inum 25993 -exec rm -f {} \;
方法 2:结合 xargs 删除
find . -inum 25993 | xargs rm -f
对于无法输入名字的文件,也可以根据 inode 重命名:
find . -inum 25993 -exec mv {} normal_name.txt \;