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