Sivo 悉见

删除 Linux/Unix 中文件名乱码的文件(目录)

匿名 · 更新于 2014/1/16

今天早晨在家里还没来公司之前,开了下电脑,刺猬同学问了个问题:如何删除Linux下面, 文件名乱码的文件?

其实仔细想想这个问题,文件名乱码掉了,无法选择。但是文件有个属性却是唯一的:inode 节点编号。这个属性肯定可以派上用场。其实也有比较变通的做法:先备份好不需要删除的文件,然后删除整个目录也行。不过这种做法不够灵活。

上网查了一下,有个方法是:

其中 12345 就是想要删除的文件的inode属性值。这个方法的确可以,不过有点蛋疼。其实,find 指令还有一个参数就是 -delete,可以直接删除,例如:

这样就轻松搞定了。那么如何获得文件的 inode 节点属性值?ls、ll 指令附加 -i 参数即可:

什么?如何制作一个名字乱码的文件?

首先文件名为何会乱码?通常情况是文件名的字符编码不被系统识别的时候。我们可以在Windows下面制造一个文件,名字如“我是一个即将乱码的文件.txt”,然后通过 WinSCP 之类的工具发送到 Linux 系统中。前提是这个Linux 系统不支持 GBK 编码。