!!
n'a rien à voir avec apt-get
. C'est un mot clé shell qui sera étendu à la commande précédente. Cette expansion est effectuée par shell avant que la commande en cours ne soit interprétée.
De man bash
:
!! Reportez-vous à la commande précédente. Ceci est un synonyme de `! -1 '.
Par exemple, si vous exécutez une commande:
echo "foo"
Alors si vous courez:
sudo apt-get install !!
il sera étendu à:
sudo apt-get install echo foo
Comme vous pouvez le constater, il est étendu à deux packages echo
, l’autre foo
. Il n'y a pas de paquet autonome nommé foo
et echo
. En plus du shell intégré, echo
il y a un /bin/echo
exécutable qui fait partie du paquet GNU-coreutils. Donc, vous obtiendrez des erreurs en disant qu'aucun de ces paquets n'est disponible.
D'autre part, l'autre personne pourrait faire quelque chose comme ceci:
$ 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.
Comme vous pouvez le voir cowsay
est en cours d'installation.
Je vous suggère de ne pas le faire (sauf si vous en êtes certain), le fait d'être explicite ne nuit pas.