Eu não acho que qualquer shell faça nada além do espaço em branco ao armazenar comandos no histórico. O que *
expandido não está registrado e parece não haver uma opção para registrá-lo.
Note que não seria possível gravar com toda a generalidade de qualquer maneira. Por exemplo, se você executar a='foo* bar*'; rm $a
( rm $=~a
in zsh), é improvável que o shell detecte a correspondência de caractere curinga sintaticamente. E não há opção para registrar todas as expansões glob.
Você poderia remendar algo junto com preexec
(ou the bash equivalent ). Primeiro teste não testado (para zsh):
history_wildcards=()
precmd () {
emulate -LR zsh
local n tmp
history -1 | read n tmp
history_wildcards[$(($n+1))]=$=~1
}
Isso preenche o array history_wildcards
em uma string com a expansão glob de cada palavra na linha de comando. A divisão de palavras é executada de maneira ingênua, então algo como echo ' /**/* '
expandirá /**/*
(ou seja, percorra seu disco). Não espere nada útil em cd subdir && echo *
ou em algo tão incompreensível.
Se você planeja de antemão, você pode fazer zsh expandir os curingas antes de enviar o comando. Na configuração padrão, basta pressionar Tab quando o cursor estiver no glob. Se você configurou a conclusão de forma diferente, tente ^X *
( expand-word
).