Bash 如何删除带有特殊字符的文件

Bash 如何删除带有特殊字符的文件,bash,rm,Bash,Rm,我试图删除的文件在文件名中包含特殊字符。这是vim编辑器中文件的外观(如果我通过vim打开目录)- 这里37700是该文件的inum 下面是使用ls | cat-v命令的文件名- M-bM-^@M-^Lminaldi.pdf 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

我试图删除的文件在文件名中包含特殊字符。这是vim编辑器中文件的外观(如果我通过vim打开目录)-

这里37700是该文件的inum

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

M-bM-^@M-^Lminaldi.pdf
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
并使用ls | od-bc命令-

M-bM-^@M-^Lminaldi.pdf
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

使用
echo
来转义:

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

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

rm -i *minaldi.pdf

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

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

find . -type f -inum 37700 -delete

你试过
rm-f*minaldi.pdf
吗?安德鲁,试过
rm-f*minaldi.pdf
。不删除文件。@jm666,perl cmd-
>perl-E'unlink(“\N{ZERO-WIDTH NON-JOINER}minaldi.pdf”)”常量(\N{ZERO-WIDTH NON-JOINER}minaldi.pdf):$^H{charnames}未在-E第1行定义,在-E的字符串内执行由于编译错误而中止。
@jm666 perl,v5.10.1(*)专为x86_64-linux-thread-multiTry构建,用于删除整个目录!(在移走了要保留的文件之后…)我收到了这个错误-
rm:无法删除``/‌\\xE2\\x80\\x8Cminaldi.pdf”:没有已尝试的此类文件或目录:(
>rm-i*minaldi.pdf rm:删除常规文件``‌minaldi.pdf“?y rm:无法删除“`minaldi.pdf”:没有这样的文件或目录
>find.-type f-inum 37700-delete find:无法删除“`”/‌minaldi.pdf”:没有这样的文件或目录