Em !* , ! é o prefixo expansão do histórico e * é o designador de palavras que significa todos os argumentos. Você pode memorizar a sintaxe geral como bang-line-colon-column (coluna ! line : ). Existem muitos atalhos possíveis: a linha padrão é a linha anterior, o especificador de coluna padrão é "all" e você pode deixar os dois pontos se o especificador de coluna não for numérico (mas !3 significaria a linha 3). Você pode usar !:0 para se referir ao nome do comando, !:1 , !:2 , etc, para se referir a argumentos sucessivos, !:$ para a última palavra, !:* para todos os argumentos e mais.
Veja também este post de Michael Mrozek em Unix Stack Exchange .