为什么 rm -f 要求我确认 zsh?
Why does rm -f ask me for confirmation on zsh?
我是来自 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 as
,也会出现提示
$ command rm -f somedir/*
zsh 里面是不是有什么东西太聪明了?
RM_STAR_SILENT
似乎 NOT 有效。
您可以在命令行或 ~/.zshrc 中执行 setopt rmstarsilent
来告诉 zsh 不要确认 rm *
.
shell选项RM_STAR_SILENT
是:
Do not query the user before executing rm *
or rm path/*
.
如果您只想在 shell 函数中临时产生 setopt
效果,您可以将它与 localoptions
结合使用,如下所示:
my-test () {
setopt localoptions rmstarsilent
...
}
您需要将目录somedir
内所有文件和文件夹的权限递归设置为rw
,然后执行:
sudo rm -rf somedir
Here's a video 我在 ZSH shell.
中为此命令成功使用了 sudo
我是来自 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 as
,也会出现提示$ command rm -f somedir/*
zsh 里面是不是有什么东西太聪明了?
RM_STAR_SILENT
似乎 NOT 有效。
您可以在命令行或 ~/.zshrc 中执行 setopt rmstarsilent
来告诉 zsh 不要确认 rm *
.
shell选项RM_STAR_SILENT
是:
Do not query the user before executing
rm *
orrm path/*
.
如果您只想在 shell 函数中临时产生 setopt
效果,您可以将它与 localoptions
结合使用,如下所示:
my-test () {
setopt localoptions rmstarsilent
...
}
您需要将目录somedir
内所有文件和文件夹的权限递归设置为rw
,然后执行:
sudo rm -rf somedir
Here's a video 我在 ZSH shell.
中为此命令成功使用了 sudo