如何在bash中删除名为“°”的文件

如何在bash中删除名为“°”的文件

我不小心创建了一个名为°.现在我在用 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+Ashell 用来转到行开头的其他快捷方式。

utf-8是否有在终端应用程序中设置编码或字符集的设置?如果您locale在终端会话中运行,它会打印什么?


您是如何创建该文件的?也许你可以用类似的方法来删除它?

相关内容