当我在 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验证?
答案1
消息“zsh:确定您要删除所有文件”是 zsh 的一项功能,具体是通过调用使用glob 扩展或之前rm
的参数调用的命令来触发的。您可以使用以下命令关闭此功能*
something/*
setopt rm_star_silent
。
消息“rm:删除常规文件”来自rm
命令本身。默认情况下它不会显示,仅在rm
使用选项调用时才会显示-i
。如果您不想要此消息,请不要传递该选项。即使没有-i
,rm
如果您尝试删除只读文件,也会提示确认(使用不同的消息);您可以通过传递选项来删除此确认-f
。
由于您没有-i
在命令行上传递,rm
因此可能是 的别名rm -i
(它也可以是函数、非标准包装器命令或不同的别名,但别名rm -i
是迄今为止最合理的)。一些默认配置包含alias rm='rm -i'
在它们的 shell 初始化文件中;这可能是您的发行版或系统管理员设置的内容,也可能是您从某处获取并添加到配置文件中然后忘记的内容。检查您的~/.zshrc
别名定义rm
。如果找到,请将其删除。如果找不到,请添加一条命令来删除别名:
unalias rm
答案2
禁用双重验证的正确命令似乎是setopt rm_star_silent
。要启用双重验证,请执行以下操作setopt no_rm_star_silent
。
有关更多详细信息,请参阅 zshoptions 的手册页man zshoptions
或http://linux.die.net/man/1/zshoptions
答案3
我不知道为什么,但以下内容对我有用 - 没有问题
rm -f **
或者,如果涉及目录:
rm -rf **
答案4
如果您使用 oh-my-zsh,则通用别名插件包含 rm -i 别名。