我要删除的文件包含文件名中的特殊字符。这是文件从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
答案 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
这将询问与模式匹配的每个文件是否要删除它。