Дуже корисно, коли ви забудете судо на початку своєї команди, !!
діє як псевдонім попередньої команди. Приклад:
$ mv /very/long/path/for/a/protected/sensible/file/caution.h .
(...) Permission denined
$ sudo !!
sudo mv /very/long/path/for(...) .
[sudo] password :
- Як ми називаємо цей подвійний
!!
трюк? Дослідження через Інтернет важкі через це. - Як це працює ? Я підозрюю зв’язок із командою історії.
- Де це визначено? Чи можу я сам визначити якусь іншу?
EDIT: Деякі цікаві позначки подій
!!:*
Він посилається на аргументи попередньої команди. Корпус:
cat /a/file/to/read/with/long/path
nano !!:*
:p
Просто надрукуйте команду, не виконуючи її, ви повинні поставити її в кінці позначення події.
$ !-5:p
sudo rm /etc/fstab -f
Це особливий випадок розширення історії, коли оболонка намагається розгорнути слово, починаючи з
—
чепнер
!
команди, що відповідає в поточному списку історії оболонки. !!
- це окремий випадок, еквівалентний !-1
, коли негативне число, яке n
наступне, !
посилається на n-ту попередню команду.
@Costas, корисніше, читайте
—
Wildcard
LESS='+/^HISTORY EXPANSION' man bash
.
man history