Os dois primeiros, eu suspeito, precisam ser completados como expansões de til antes que possam ser preenchidos como nomes de diretório.
bash$ compgen -u -- '~mi'
~mice
Você não pode, no entanto, especificar -d
e -u
na mesma chamada para compgen
.
Observe o seguinte:
bash$ compgen -d -- '~/' # Like #1, but with trailing /: it works
bash$ compgen -d -- '~mice' # Like #3, but w/o trailing /: it doesn't work
Portanto, expansões de til incompletas não serão expandidas para o diretório apropriado por -d
e "completo" significa incluir o caractere separador de caminho de terminação.
pode valer a pena registrar um relatório de erros , embora eu suspeite que funciona como pretendido. No mínimo, você pode obter uma explicação melhor para o comportamento atual.