Veja o link para ter uma ideia de como essa filtragem pode ser feita.
Basicamente, você precisará pós-processar COMPREPLY[]
de algumas maneiras para se livrar dos erros de conclusão. Você também pode adicionar um wrapper:
_mycomp_unrar(){
local i
_unrar "${[@]}" # use the old one
# now copy the for i in "${COMPREPLY[]}" stuff
} &&
complete -p rar # remove old completion
complete -F _mycomp_unrar # use your good new one
Ou você pode enviar uma solicitação pull (conforme mostrado acima) e ver o que acontece.
Adicionado o link para corrigir o problema de que a existência de partes parará os arquivos normais de aparecer. (O glob como um todo é .. ilegível.)
Agora, você também precisa copiar a parte if ((cmp_parts))
. Além disso, faça cmp_parts
local.