教你Linux下如何使用inode删除文件 | 《Linux就该这么学》
导读 | 文件的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的用处就在这里。
对于linux中的任何一个文件都必然有其唯一的inode值,这时候就可以通过inode来删除异常文件名的文件。
利用find命令来删除
find ./* -inum 1049741 -delete
//在当前目录下查找指定inode的文件,然后将其删除
直接删除,不会询问你确认删除。
利用find命令的-exec参数来调用rm命令
find ./* -inum 1049741 -exec rm -i {} \;
find会调用rm命令,此时,==rm会询问是否确认删除==。
如果对rm命令添加-f参数,则强制删除,rm命令不会询问确认删除。
使用xargs配合find的结果进行删除
find ./* -inum 1049741 |xargs rm -f
————————————————
可以尝试用文件名加引号的方法删除文件。
比如 “–help”文件,可以用rm “–help”删除
也可以用unlink删除文件。
unlink命令调用unlink函数,可以删除一个特定文件。
用mtools删除Windows下创建的非法文件。
这种方法在find命令配合inode失效时,最为有用。专门对付autorun.inf病毒创建的文件夹。
原文来自:http://www.jsgho.net/help/fwq/30422.html
本文地址: https://www.linuxprobe.com/linux-inode.html编辑:郝大发,审核员:逄增宝
赞 (0)