52

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

 5 years ago
source link: https://www.linuxprobe.com/linux-inode.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
导读 文件的inode定义了文件的大小、所有人等文件的特征。每个文件和目录都有自己唯一的inode数字。但是为什么用inode来删除文件,而不是用常用的rm -rf命令呢?原因是,如果你不小心创建了含有特殊字符的文件和目录,比如带有 ? * ^ 的文件名,就会很难删除。下面我们就来介绍一下:1)如何找出文件和目录的inode;2)配合find命令,删除特定的inode文件;3)其他有用的删除顽固文件的方法。
如何找出文件的inode?

stat 或者ls -il 。带有 -i 参数的ls命令,就是指显示文件的inode

找到inode后,如何删除这个文件?
find . -inum [inode数字] -exec rm -i {} /;
1)下面我们完整实验一下,创建一个带特殊字符的文件:
$ cd /tmp

$ touch “/+Xy /+/8″

$ ls
2)尝试用rm命令删除
$ rm /+Xy /+/8
3)找出这个文件的inode数字
$ ls -il

342137 -rw-r–r– 1 tw tw 0 2008-11-20 08:57 /+Xy /+/8
4)342137就是我们要找的inode数字。下面用find命令删除它
$ find . -inum 342137 -exec rm -i {} /;

比如,你的系统中有”2008/11/20″这个文件,用rm是删除不了的。Linux不允许你建立这个文件,但是Windows下就可以。所以find配合inode的用处就在这里。

可以尝试用文件名加引号的方法删除文件。

比如 “–help”文件,可以用rm “–help”删除

也可以用unlink删除文件。

unlink命令调用unlink函数,可以删除一个特定文件。

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

这种方法在find命令配合inode失效时,最为有用。专门对付autorun.inf病毒创建的文件夹。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK