我的 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/