web-dev-qa-db-ja.com

apt-get update、dist-upgrade、autoremove、autocleanを1つのSudoコマンドで実行

マシンを最新の状態に保つための私の通常のコマンドはかなり冗長であり、コマンドに時間がかかる場合は複数のパスワードプロンプトが表示される可能性があります。

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

これを1つのコマンドに短縮したいと思います(できればグローバルエイリアスを使用せずに)。

解決策 に基づく @ amraの回答 および 別のヒント

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

試してみてください

Sudo sh -c "apt-get -y update;apt-get -y dist-upgrade;apt-get -y autoremove;apt-get -y autoclean"
20
amra

'cmd1'がエラーなしで実行された場合に限り、 '&&'演算子を使用してコマンド 'cmd2'を実行できます。

(cmd1 && cmd2)

ただし、これはbashで直接機能するだけで、「Sudo」が前に表示されません。

したがって、期待どおりに機能するために、次のコマンドを使用できます。

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

Amraによって提案された答えは、上記のコマンドと同じではないことに注意してください。「;」で区切られたコマンド前のコマンドの終了コードを考慮せずに順番に実行されます。 「&&」を使用してコマンドを区切る場合、終了コードが考慮されます。したがって、「cmd1 && cmd2」がある場合、cmd2は、cmd1の終了コードが0の場合(つまり、cmd1が失敗しなかった場合)にのみ実行されます。

1
Javaguru