运行echo .[!.]*报event not found错误,是否是Kali Linux系统问题?
这个问题不是Kali Linux发行版故障导致,是zsh shell的默认特性触发的报错。
zsh默认开启历史事件扩展功能,!是该功能的默认触发字符。当!没有被引号包裹、也没有被转义时,zsh会优先解析!后的内容,尝试匹配历史命令记录。你输入的.[!.]*中,!.会被zsh识别为「调用历史记录里最近一条以.开头的命令」,匹配不到对应历史记录就会抛出event not found: .的错误。
你可以通过以下任意一种方式解决该问题:
- 对
!单独加转义符:echo .[\!.]* - 用单引号包裹需要保留字符原样传递给命令解析:
echo '.[!.]*' - 临时关闭当前终端会话的历史扩展功能,执行后再运行原命令即可:
需要恢复该功能时执行set +o histexpandset -o histexpand即可。
内容的提问来源于stack exchange,提问作者slinger
相关产品推荐
相关产品推荐

