Очень полезно, когда вы забыли sudo в начале своей команды, !!
действует как псевдоним предыдущей команды. Пример :
$ mv /very/long/path/for/a/protected/sensible/file/caution.h .
(...) Permission denined
$ sudo !!
sudo mv /very/long/path/for(...) .
[sudo] password :
- Как мы называем этот двойной
!!
трюк? Из-за этого признака, исследования по интернету трудны. - Как это работает ? Я подозреваю связь с командой истории.
- Где это определяется? Могу ли я сам определить некоторые другие?
РЕДАКТИРОВАТЬ: некоторые интересные указатели событий
!!:*
Это относится к аргументам предыдущей команды. Случай использования:
cat /a/file/to/read/with/long/path
nano !!:*
:p
Просто напечатайте команду, не выполняя ее, вы должны поместить ее в конце указателя события.
$ !-5:p
sudo rm /etc/fstab -f
man history
!
соответствующей команды в списке истории текущей оболочки.!!
это особый случай, что эквивалентно!-1
, где отрицательное числоn
следующий!
относится к п - й предыдущей команды.LESS='+/^HISTORY EXPANSION' man bash
.Ответы:
!!
перечислен вbash
руководстве под заголовком «Обозначения событий»:Так
!!
будет заменено предыдущей командой.Обратите внимание, что история оболочки будет содержать не литерал,
!!
а фактическую команду, которая была выполнена:источник