我正在从Cygwin运行zsh。我的一个shell函数包含一个语句
rm -f somedir/*
(我想删除somedir中的所有非隐藏文件,但不删除目录本身)。但是,我总是被问到:
zsh: sure you want to delete all the files in ... [yn]?
此消息的措辞(注意开头的“zsh:”)表明问题来自zsh,而不是rm。但是,rm是一个外部命令:
$ type rm
rm is /usr/bin/rm
顺便说一句,如果我明确地调用rm作为
,也会出现提示$ command rm -f somedir/*
zsh中有什么东西,它试图太聪明吗?
答案 0 :(得分:15)
似乎RM_STAR_SILENT
非有效
您可以setopt rmstarsilent
告诉zsh不确认rm *
。
shell选项RM_STAR_SILENT
是:
在执行
rm *
或rm path/*
之前,请勿查询用户。
如果你想仅仅在shell函数中暂时生成setopt
效果,你可以将它与localoptions
一起使用,如下所示:
my-test () {
setopt localoptions rmstarsilent
...
}