Linux下删除文件名中包含特殊字符的文件


之前就做个这篇文章的笔记,但是一直也没想到自己会在实际情况中碰到:

why__error

Linux下删除文件名中包含特殊字符的文件

在Windows下不管什么文件名的文件delete一下全废掉,再顽固的用第三方软件粉碎一下就ok,在Linux命令行下就不一样了,rm命令时常删除不掉拥有千奇百怪的文件名(特殊字符+超长字符+各种乱码)的文件,让人烦恼不已,正规途径rm不掉的我们可以试试另一种思维。

例一:

系统中有一个文件名为“-test”的文件,想要把他删除,按照一般的删除方法rm -test,会得到提示“invalid option(无效选项)”,这时可以用rm命令的“–”参数来解决问题。

# rm -- -test

便可以成功删除该文件。

例二:

系统中有一个文件名全是乱码的文件,根本无从下手进行删除(系统打不出乱码符号),我们可以尝试以下的歪招
例如这个乱码的文件是luanma.txt,当然该例假设luanma便是各种奇形怪状的乱码,呵呵~~我们可以用rm *搞定
#cd xxx
进入乱码文件所在的目录
#rm *
这个命令表示删除该目录的所有文件,当然最终目的不是删除所有文件啦~~,输入命令回车后系统在删除每个文件都提示是否删除这个文件,其他不相关的文件全部都输入“n”回车跳过不删除,直到我们的目标出现
rm: remove regular empty file `luanma.txt’?
哈哈,这是我们果断地输入“y”,回车,将这个可恨的文件干掉!

不过这个方法要视系统而定,要谨慎使用,上面例子使用的是RedHat,有些Linux的发行版本rm命令没有提示功能,输入rm *就直接把所有文件干掉了,所以用之前先新建一个目录测试一下以防万一。

参考链接:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注