要列出所有 docker 存储库,我需要使用星号。但我被迫添加引号,因为 zsh globbing 捕获了星号。
sudo docker image list "hub.local/*"
我尝试使用 noglob 别名,但 sudo 会失败,而 docker 需要 sudo
alias docker="noglob docker"
我以为我可以将 zsh 设置为在无法匹配时不抱怨,但似乎 zsh 无论如何都会删除星号。
setopt nomatch
我想完全禁用 zsh 通配符,或者让 zsh 在匹配失败时传递通配符。或者可能将 zsh 通配设置为像 bash 一样运行。我想一直避免输入引号。
答案1
alias docker='noglob sudo docker'
docker
会导致 glob 永远不会在以 开头且docker
在 下运行的行上扩展sudo
。如果您偶尔仍然需要不以 root 身份运行docker
,则可以将其设置为sudo-docker
或sdocker
别名。
我不建议启用 Bourne/行为,这确实是一个糟糕的设计并且很危险,但如果您确实想要这样做,可以使用(or或...)bash
来完成。set +o nomatch
setopt nonomatch
unsetopt nomatch