我正在尝试删除的文件包含文件名中的特殊字符。这是文件从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
您可以使用find的内部删除参数:
find . -type f -inum 37700 -delete
使用echo
逃脱:
rm "$(echo -en './\xE2\x80\x8Cminaldi.pdf')"
如果它只是一次删除而不是在脚本中使用,请使用-i
进行交互。尽可能多地指定文件名,这样就不必经历太多文件名:
rm -i *minaldi.pdf
这将询问与模式匹配的每个文件是否要删除它。