Очень полезно, когда вы забыли 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
Это особый случай раскрытия истории, когда оболочка пытается развернуть слово, начинающееся с
—
chepner
!
соответствующей команды в списке истории текущей оболочки. !!
это особый случай, что эквивалентно !-1
, где отрицательное число n
следующий !
относится к п - й предыдущей команды.
@ Костас, полезнее, читай
—
Подстановочный
LESS='+/^HISTORY EXPANSION' man bash
.
man history