Muito útil quando você esquece um sudo no início do seu comando, !!
age como um apelido do comando anterior. Exemplo:
$ mv /very/long/path/for/a/protected/sensible/file/caution.h .
(...) Permission denined
$ sudo !!
sudo mv /very/long/path/for(...) .
[sudo] password :
- Como chamamos isso de
!!
truque duplo ? Pesquisas pela internet são difíceis por causa desse token. - Como funciona ? Suspeito de um link com o comando history.
- Onde está definido? Posso definir outro eu mesmo?
EDIT: Alguns designadores de eventos interessantes
!!:*
Refere-se aos argumentos do comando anterior. Caso de uso:
cat /a/file/to/read/with/long/path
nano !!:*
:p
Basta imprimir o comando sem executá-lo, você deve colocá-lo no final do designador de eventos.
$ !-5:p
sudo rm /etc/fstab -f
É um caso especial de expansão do histórico, no qual o shell tenta expandir uma palavra começando com
—
chepner
!
um comando correspondente na lista de histórico do shell atual. !!
é um caso especial, equivalente a !-1
, em que um número negativo a n
seguir !
se refere ao enésimo enésimo comando anterior.
@ Costas, mais útil, leia
—
Wildcard
LESS='+/^HISTORY EXPANSION' man bash
.
man history