zsh中双重rm验证

zsh中双重rm验证

当我在 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。如果您不想要此消息,请不要传递该选项。即使没有-irm如果您尝试删除只读文件,也会提示确认(使用不同的消息);您可以通过传递选项来删除此确认-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 zshoptionshttp://linux.die.net/man/1/zshoptions

答案3

我不知道为什么,但以下内容对我有用 - 没有问题

rm -f **

或者,如果涉及目录:

rm -rf **

答案4

如果您使用 oh-my-zsh,则通用别名插件包含 rm -i 别名。

https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/common-aliases/common-aliases.plugin.zsh

相关内容