Você provavelmente tem a opção nullglob
shell ativada; isso faz com que qualquer palavra contendo um caractere globbing ( *
ou ?
) seja removido se a glob não corresponder a nada. Assim, se você estiver em uma pasta que não contenha nenhum arquivo, pasta, etc., com um nome de caractere único, ?
não será expandido para nada e será removido; da mesma forma, not-a-command?
provavelmente não corresponderá a nada e será removido.
Para verificar se esse é o caso, execute
shopt nullglob
Para desativar a opção, execute
shopt -u nullglob