!!
не має нічого спільного apt-get
. Це ключове слово оболонки, яке буде розширено до попередньої команди. Це розширення здійснюється оболонкою до інтерпретації поточної команди.
Від man bash
:
!! Зверніться до попередньої команди. Це синонім `! -1 '.
Наприклад, якщо ви запускаєте команду:
echo "foo"
Тоді якщо ви запустите:
sudo apt-get install !!
вона буде розширена до:
sudo apt-get install echo foo
Як бачите, він розширюється на два пакети, а саме echo
інший є foo
. Не існує окремого пакета з іменем foo
та echo
. Крім оболонки, вбудованої в echo
неї, є /bin/echo
виконуваний файл, який є частиною пакету GNU-coreutils. Отже, ви отримаєте помилки, сказавши, що таких пакетів немає.
З іншого боку, інша людина може робити щось подібне:
$ 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.
Як бачите cowsay
, встановлюється.
Я б запропонував вам не робити цього (якщо ви не впевнені в цьому), якщо висловлюватися явно, це не шкодить.