如何使用特殊字符删除此文件

时间:2017-12-17 14:58:12

标签: bash rm

我要删除的文件包含文件名中的特殊字符。这是文件从vim编辑器看起来的样子(如果我通过vi打开目录) -

<200c>minaldi.pdf

我尝试了所有可能的方式来删除文件,例如找到“inum”,使用转义序列但似乎没有任何帮助。

我试过了 -

find . -type f -inum 37700 -exec rm '{}' \;
rm: cannot remove `./‌minaldi.pdf': No such file or directory 

这里37700是文件的内容。

这是使用 ls |的文件名cat -v 命令 -

M-bM-^@M-^Lminaldi.pdf

并使用 ls | od -bc 命令 -

0000000 342 200 214 155 151 156 141 154 144 151 056 160 144 146 012
        342 200 214   m   i   n   a   l   d   i   .   p   d   f  \n
0000017

3 个答案:

答案 0 :(得分:1)

您可以使用find的内部删除参数:

find . -type f -inum 37700 -delete

答案 1 :(得分:0)

使用echo来逃避:

rm "$(echo -en './‌\xE2\x80\x8Cminaldi.pdf')"

答案 2 :(得分:0)

如果只删除一次而不是在脚本中使用,请使用-i进行交互。尽可能多地指定文件名,这样就不必经历太多文件名:

rm -i *minaldi.pdf

这将询问与模式匹配的每个文件是否要删除它。