利用inode删除文件或者目录
当linux文件系统中有目录或者文件名为不规则字符时,我们可以通过该文件的inode number删除次文件或者目录
对于inode的理解请参考理解inode
删除文件
获取要删除文件的inode number
比如我们要删除 /root/目录下某个名称为不规则字符的文件
首先进入/root 目录下
cd /root
由于无法直接写出此文件的名称,故列出root目录下所有文件的inode
ls -i
要删除的文件前面的数字为该文件的inode 例如我们删除/root/nohup.out 文件,则记录该文件的inode number为100823907
通过获取到的inode删除inode对应的文件
在/root(要删除的文件所在目录) 目录下执行以下命令,然后输入y确认删除,再次查看时inode number为100823907 的nohup.out文件已经被删除。
find . -inum 100823907 -exec rm -i {} \;
通过inode删除文件动图
删除目录
获取要删除目录的inode number
比如我们要删除 /root/目录下某个名称为不规则字符的目录
首先进入/root 目录下
cd /root
由于无法直接写出此文件的名称,故列出root目录下所有文件以及目录的inode
ls -i
要删除的目录前面的数字为该文件的inode 例如我们删除/root/out 目录,则记录该文件的inode number为39066994
通过获取到的inode删除inode对应的目录
在/root(要删除的目录所在目录) 目录下执行以下命令,虽然报文件不存在,但是再次查看时(ls -i /root)inode number为39066994的out目录已经被删除。
find . -inum 39066994 -exec rm -r {} \;
通过inode删除目录动图