Hello! 欢迎来到小浪云!


教你Linux下如何使用inode删除文件


avatar
小浪云 2025-01-19 133

教你Linux下如何使用inode删除文件

**如何获取文件的inode编号?**

使用`stat`命令或`ls -il`命令。`ls -il`命令中的`-i`参数用于显示文件的inode编号。

**获取inode编号后,如何删除文件?**

使用以下`find`命令:

find . -inum [inode编号] -exec rm -i {} ;
**1. 创建包含特殊字符的文件:**

“`bash $ cd /tmp

$ touch “/+Xy /+/8″

$ ls

 <div style="margin-top: 2em; margin-bottom: 1em;">**2. 使用`rm`命令尝试删除:**</div>```bash $ rm /+Xy /+/8
**3. 获取文件的inode编号:**

“`bash $ ls -il

342137 -rw-r–r– 1 tw tw 0 2008-11-20 08:57 /+Xy /+/8

 <div style="margin-top: 2em; margin-bottom: 1em;">**4. 使用`find`命令删除文件 (342137为inode编号):**</div>```bash $ find . -inum 342137 -exec rm -i {} ;

例如,系统中存在名为“2008/11/20”的文件,rm命令无法直接删除。这是因为Linux系统不允许创建此类文件名,但Windows系统可以。因此,结合inode编号的find命令就显得非常有用。

**尝试使用引号删除文件名包含特殊字符的文件。**

例如,对于文件名包含空格或特殊符号的文件,例如“–help”,可以使用`rm “–help”`进行删除。

**使用`unlink`命令删除文件。**

`unlink`命令调用`unlink`函数,可以删除指定文件。

**使用`mtools`删除Windows下创建的非法文件。**

当`find`命令结合inode编号失效时,此方法非常有用,尤其适用于删除autorun.inf病毒创建的文件夹。

相关阅读