Isso faz parte da interação do histórico do bash .
- Um
!!
é substituído pelo último comando como está. - Um
!foo
é substituído pelo último comando iniciado comfoo
. - Um
!^
ou um!$
é substituído pelo primeiro ou pelo último argumento, respectivamente, no comando anterior. - Um
!n
é substituído pelo comando n th no histórico. - Um
!-n
é substituído pelo n th-último comando do histórico. - ...