!!
nie ma z tym nic wspólnego apt-get
. Jest to słowo kluczowe powłoki, które zostanie rozwinięte do poprzedniego polecenia. To rozszerzenie jest wykonywane przez powłokę przed interpretacją bieżącego polecenia.
Od man bash
:
!! Zobacz poprzednie polecenie. To synonim `! -1 '.
Na przykład, jeśli uruchomisz polecenie:
echo "foo"
Następnie, jeśli uruchomisz:
sudo apt-get install !!
zostanie rozszerzony do:
sudo apt-get install echo foo
Jak widać, jest on rozszerzony na dwa pakiety, a echo
drugi jest foo
. Nie ma samodzielnego pakietu o nazwie foo
i echo
. Oprócz wbudowanej powłoki echo
istnieje /bin/echo
plik wykonywalny będący częścią pakietu GNU-coreutils. Pojawią się więc błędy informujące, że żadne takie pakiety nie są dostępne.
Z drugiej strony druga osoba może robić coś takiego:
$ cowsay
The program 'cowsay' is currently not installed. You can install it by typing:
sudo apt-get install cowsay
$ sudo apt-get install !!
sudo apt-get install cowsay
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
filters
The following NEW packages will be installed:
cowsay
0 upgraded, 1 newly installed, 0 to remove and 119 not upgraded.
Need to get 18.5 kB of archives.
Jak widać cowsay
jest instalowany.
Sugeruję, abyś tego nie robił (o ile nie masz pewności), ponieważ wyrażanie się wprost nie szkodzi.