Bardzo przydatne, gdy zapomnisz sudo na początku polecenia, !!
działa jak alias poprzedniego polecenia. Przykład:
$ mv /very/long/path/for/a/protected/sensible/file/caution.h .
(...) Permission denined
$ sudo !!
sudo mv /very/long/path/for(...) .
[sudo] password :
- Jak nazywamy tę podwójną
!!
sztuczkę? Badania przez Internet są trudne z powodu tego tokena. - Jak to działa ? Podejrzewam, że istnieje link do polecenia historii.
- Gdzie to jest zdefiniowane? Czy mogę sam zdefiniować coś innego?
EDYCJA: Kilka interesujących projektantów wydarzeń
!!:*
Odnosi się do argumentów poprzedniego polecenia. Przypadek użycia :
cat /a/file/to/read/with/long/path
nano !!:*
:p
Wystarczy wydrukować polecenie bez jego wykonania, należy je umieścić na końcu oznaczenia zdarzenia.
$ !-5:p
sudo rm /etc/fstab -f
man history
!
pasującego polecenia na liście historii bieżącej powłoki.!!
jest przypadkiem szczególnym, równoważnym z!-1
, gdyn
następująca po nim liczba ujemna!
dotyczy n-tego poprzedniego polecenia.LESS='+/^HISTORY EXPANSION' man bash
.Odpowiedzi:
!!
jest wymieniony wbash
podręczniku pod nagłówkiem „Projektanci wydarzeń”:Więc
!!
zostanie zastąpiony poprzedniego polecenia.Zauważ, że historia powłoki nie będzie zawierała literału,
!!
ale zamiast tego faktycznie wykonane polecenie:źródło