插入符号^
在 zsh 中起什么作用?
echo ^
列出当前目录中的文件,例如ls
.我用格罗姆。
显然它不是别名并且which ^
打印与 相同which $(ls)
。也不command -v ^
打印任何内容并返回 1。
我可以假设^
其行为类似于包含当前目录中的文件的变量吗?
答案1
$ PS1='%% ' zsh -f
% print ^
^
% setopt EXTENDED_GLOB
% print ^
...
%
所以,你必须EXTENDED_GLOB
启用,因此它^
是一个 glob,所以在深入研究后zshexpn(1)
我们发现
^x (Requires EXTENDED_GLOB to be set.) Matches anything except the
pattern x. This has a higher precedence than `/', so `^foo/bar'
will search directories in `.' except `./foo' for a file named
`bar'.
所以“除了 x 之外的所有内容”都匹配所有内容,因为您没有排除带有空白 x 的任何内容。