![如何在bash中删除名为“°”的文件](https://linux22.com/image/42690/%E5%A6%82%E4%BD%95%E5%9C%A8bash%E4%B8%AD%E5%88%A0%E9%99%A4%E5%90%8D%E4%B8%BA%E2%80%9C%C2%B0%E2%80%9D%E7%9A%84%E6%96%87%E4%BB%B6.png)
我不小心创建了一个名为°
.现在我在用 bash 删除它时遇到了麻烦。
[/opt/etc/sudoers.d] # ls -l
-r--r----- 1 admin administ 21 Feb 3 23:54 010-root
-rw-r--r-- 1 admin administ 20 Feb 3 23:50 °
键入rm °
似乎只会将插入符号移动到行的开头,即不输入任何字符。
(不管怎样,我正在使用 Mac OSX 终端通过 SSH 连接的远程机器上运行 bash 3.2.0)
有任何想法吗?
答案1
怎么样?
rm -i ?
我认为这应该有效...
答案2
如果有很多匹配项与 rm 一样使用通配符rm -i ?
,您可以随时通过 inode 编号删除它:
ls -i
find . -inum <inode> -ok rm '{}' \;
其中<inode>
是 inode number from ls -i
,列出了当前目录下文件的所有 inode 号。
答案3
答案rm -i ?
很好。
这也可以工作:
rm [^a-z]
一样
rm [[:punct:]]
至于为什么它会回到行首,你是如何输入的˚
?也许输入被解释为Ctrl+A
shell 用来转到行开头的其他快捷方式。
utf-8
是否有在终端应用程序中设置编码或字符集的设置?如果您locale
在终端会话中运行,它会打印什么?
您是如何创建该文件的?也许你可以用类似的方法来删除它?