
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/