插入符号在 zsh 中起什么作用?

插入符号在 zsh 中起什么作用?

插入符号^在 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 的任何内容。

相关内容