当我在zsh中执行rm *时,会得到如下信息:
2014-06-08 10:14:23 $ rm *
zsh: sure you want to delete all the files in /home/assay/assay/log [yn]? y
rm: remove regular file `development.log'? y
首先zsh询问我是否确定要全部删除,然后rm询问每个特定文件。
我怎样才能拥有zsh验证?
setopt rmstarsilent
当我在zsh中执行rm *时,会得到如下信息:
2014-06-08 10:14:23 $ rm *
zsh: sure you want to delete all the files in /home/assay/assay/log [yn]? y
rm: remove regular file `development.log'? y
首先zsh询问我是否确定要全部删除,然后rm询问每个特定文件。
我怎样才能拥有zsh验证?
setopt rmstarsilent
Answers:
消息“ zsh:确定要删除所有文件”是zsh功能,特别是通过调用rm
带有glob扩展之前*
或something/*
之后的自变量的命令而触发。您可以使用关闭此功能setopt rm_star_silent
。
消息“ rm:删除常规文件”来自rm
命令本身。默认情况下不会显示它,仅在rm
使用option调用时显示-i
。如果您不希望此消息,请不要传递该选项。即使不使用-i
,rm
如果您尝试删除只读文件,也会提示您确认(带有不同的消息);您可以通过传递选项删除此确认-f
。
因为您没有-i
在命令行上传递,rm
所以大概是rm -i
它的别名(它也可以是函数,非标准的包装器命令或其他别名,但是rm -i
到目前为止,别名似乎是最合理的)。一些默认配置包括alias rm='rm -i'
在它们的外壳初始化文件中。这可能是您的发行版或系统管理员设置的,或者是您从某处拾取并添加到配置文件中却忘记了的东西。检查您~/.zshrc
的别名定义rm
。如果找到一个,请将其删除。如果找不到,请添加命令以删除别名:
unalias rm
禁用双重验证的正确命令似乎是setopt rm_star_silent
。要启用双重验证,请执行以下操作setopt no_rm_star_silent
。
有关更多详细信息,请参见zshoptions的手册页man zshoptions
或http://linux.die.net/man/1/zshoptions
unsetopt rm_star_silent
如果您使用的是oh-my-zsh,则common-aliases插件包含rm -i别名。
rm -f ./*
。默认情况下,rm
除非您没有对该文件的写许可权,否则不询问任何内容。也许你有一个alias rm='rm -i'