コマンドラインから ZIP ファイルから Web ソフトウェア パッケージを更新するにはどうすればよいですか?

コマンドラインから ZIP ファイルから Web ソフトウェア パッケージを更新するにはどうすればよいですか?

Linux サーバーに Web ソフトウェア パッケージをインストールしています。ZIP ファイルで更新をダウンロードし、変更された部分だけを上書きしたいと考えています。(たとえば、すべてのコア ファイルは置き換える必要がありますが、追加したファイルは変更しないでください。) コマンド ラインからこれを行うにはどうすればよいでしょうか。

私のやり方としては、自分のパソコンで解凍し、変更したファイルを GUI ファイル マネージャーでアップロードするのですが、コマンド ラインからこれを行う方法を知りたいです。

私の場合、Ubuntu サーバー上で YOURLS を更新しようとしていますが、この質問は WordPress などのほとんどの Web ソフトウェアに一般的に当てはまるようです。

答え1

そこで思い浮かぶ最も簡単な方法の 1 つは、zip ファイルをダウンロードし、それを一時的にどこかに解凍し、不要なファイルを削除してから、YOURLS ファイルを、ダウンロードしたばかりの更新されたファイルに置き換えることです。

ファイルをダウンロードし (wget または curl を使用)、一時ディレクトリに抽出するには:

cd /tmp/
mkdir update
cd update
wget http://linktozipfile/file.zip

または

curl http://linktozipfile/file.zip -o file.zip

それから

unzip file.zip

これで、不要なファイルを決定し、rm (remove/delete) ツールを使用して削除できます。

rm config.php
rm someotherfileidontwannareplace.php

次に、更新されたすべてのファイルを同じディレクトリに移動し、古いファイルを置き換えることで、すべてのファイルを置き換えることができます。

cd ..
rsync -av newfolder/ oldfolder/

単に新しいファイルを追加する必要がある場合は、同様の方法を実行できますが、--existing既存のファイルを上書きしないように mv のフラグを使用します。

これは次のようになります

cd /tmp/
mkdir update
cd update
wget http://linktozipfile/file.zip
unzip file.zip
cd ..
rsync -av --existing newfolder/ oldfolder/

関連情報