Basicamente, você espera que o shell expanda o til em $HOME
no começo e em algum lugar no meio de uma palavra que não acontecerá: o primeiro ~
será expandido em $HOME
, mas não os outros (neste caso, devido a extendedglob
ser definido, eles são tratados como operadores glob) ...
Como observado, existem maneiras de fazer isso - até a sugestão do Sundeep está OK porque zsh
entende ksh
-como globs (que é onde o bash
copiou elas):
setopt kshglob
setopt nobareglobqual
print -rl ~/xy?([^z]*)