apt-get update, dist-upgrade, autoremove, autoclean dans une seule commande sudo

Ma commande habituelle pour maintenir la machine à jour est plutôt verbeuse et peut générer plus d’une invite de mot de passe si une commande prend du temps:

sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get autoremove && sudo apt-get autoclean 

Je voudrais raccourcir cela à une seule commande (de préférence sans utiliser un alias global).

Solution basée sur la réponse de @amra et un autre conseil :

 sudo sh -c 'apt-get update && apt-get upgrade --yes && if [ -f /var/run/reboot-required ]; then echo You should reboot; fi' 

Essayer

 sudo sh -c "apt-get -y update;apt-get -y dist-upgrade;apt-get -y autoremove;apt-get -y autoclean" 

On peut utiliser l’opérateur ‘&&’ pour exécuter la commande ‘cmd2’ si et seulement si ‘cmd1’ a été exécuté sans erreur:

 (cmd1 && cmd2) 

Mais cela ne fonctionne que directement dans bash, sans “sudo” devant.

Donc, pour fonctionner comme prévu, nous pouvons utiliser la commande suivante:

 sudo /bin/sh -c "apt-get update && apt-get dist-upgrade && apt-get autoremove && apt-get autoclean" 

Notez que la réponse proposée par amra n’est pas la même que la commande ci-dessus: Commandes séparées par “;” sont exécutés en séquence sans tenir compte du code de sortie de la commande précédente. Lorsque vous utilisez “&&” pour séparer les commandes, le code de sortie est pris en compte. Ainsi, si nous avons “cmd1 && cmd2”, cmd2 n’est exécuté que si le code de sortie de cmd1 était 0 (c.-à-d. Que cmd1 n’a pas échoué).