在服务上上传或创建文件时,可能由于编码等原因偶然会生成一些乱码文件,直接使用rm是很难删除的,这种情况可以通过find命令进行删除。

进入存在乱码的目录, 如下服务器上的乱码文件:

1
2
3
4
5
6
[root@testserver ~]#ls -lrtha
total 124K
-rw-r--r--.  1 root root  100 Sep 23  2004 .cshrc
-rw-r--r--.  1 root root  129 Dec  4  2004 .tcshrc
-rw-r--r--.  1 root root   18 May 20  2009 .bash_logout
-rw-r--r--   1 root root    0 Oct 10  2015 .?Xk?ͨa.?J]?k?Φ??P??W??,?K?

使用ls的i参数可以查看文件或目录的inode

1
2
-i, --inode
              print the index number of each file
1
2
3
4
5
6
[root@testserver ~]#ls -lrthai
total 124K 
1063477 -rw-r--r--.  1 root root  100 Sep 23  2004 .cshrc
1063478 -rw-r--r--.  1 root root  129 Dec  4  2004 .tcshrc
1063474 -rw-r--r--.  1 root root   18 May 20  2009 .bash_logout
1067472 -rw-r--r--   1 root root    0 Oct 10  2015 .?Xk?ͨa.?J]?k?Φ??P??W??,?K?

前面的数字就是inode,如乱码文件为1067472,这样就可以使用find查找inode进行删除了

1
[root@testserver ~]#find . -inum 1067472 -exec rm {} -rf \;