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. - ...