当我搜索文件时
ls [a-t]est.txt
Run Code Online (Sandbox Code Playgroud)
它给出了test.txt
预期的结果
但是,当我使用
ls [!a-g]est.txt
Run Code Online (Sandbox Code Playgroud)
输出是 ls [aptg]est.txt
[!set] 的一些其他示例:
ls [!b-z]est.txt
返回 [bbz]est.txt
ls [!g-h]est.txt
返回 ls [git clone --depth=1h]est.txt
我的 zsh 有问题,还是 [!set] 在 zsh 中的工作方式不同?
机器是 Linux Mint 18.2
正如 steeldriver 所提议的,^
代替make !
[!set] 解决了这个问题。
这样做的原因是在 zsh 中!
触发了历史扩展。如果您不希望发生这种情况,请禁用历史扩展。为此,请setopt nobanghist
在命令行中执行。