
我的 Linux 伺服器上安裝了一個 Web 軟體包。我已經下載了 ZIP 檔案形式的更新,並且我只想覆蓋已更改的內容。 (例如,應替換所有核心文件,但不應觸及我添加的任何文件。)如何從命令列執行此操作?
我的方法是在我的個人電腦上解壓縮它,然後使用 GUI 文件管理器上傳更改的文件,但我想了解如何從命令列執行此操作。
就我而言,我正在嘗試在 Ubuntu 伺服器上更新 YOURLS,但這個問題似乎普遍適用於大多數 Web 軟體,如 WordPress 或類似軟體。
答案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(刪除/刪除)工具刪除它們。
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/