如何使用“rm #*”删除以#开头的文件?

如何使用“rm #*”删除以#开头的文件?

在 bash 中,我想删除以#.我尝试过rm #*,但收到消息:rm: missing operand

那么如何实现这一目标呢?

答案1

octothorpe ( #) 或井号是一个注释字符,在POSIX 语法在这里正如所说:

如果当前字符是“#”,则该字符以及下一个 <newline> 之前(但不包括)的所有后续字符都将作为注释被丢弃。结束行的 <newline> 不被视为注释的一部分。

因此,您需要引用或转义井号,以便它不会被解释为注释:

rm '#'*

或者

rm "#"*

或者

rm \#*

答案2

虽然它#开始评论,但它只在单词的开头才这样做。因此,为路径添加前缀(例如./当前目录)也可以禁用它。

rm ./#*

顺便说一句,前缀./也是防止以破折号
( -like-this) 开头的文件名被解释为命令选项的两种方法之一。

答案3

如果您的 shell 是bash,您可以禁用 用作#注释字符在交互式 shell 中

shopt -u interactive_comments

清除此 shell 选项后,

rm #*

应该按照您最初的预期工作,而不需要转义#.

答案4

取决于您可能使用的 shell 设置

rm \#file

或者

rm '#file'

或者如果它是一个特殊字符,则解释并显示为 # 则

rm ?file

可以工作

相关内容