1

На моем сервере Linux установлен пакет веб-программ. Я загрузил обновление в ZIP-файл и хочу перезаписать только то, что изменилось. (Например, все основные файлы должны быть заменены, но любые файлы, которые я добавил, не должны быть затронуты.) Как мне сделать это из командной строки?

Мой метод заключается в том, чтобы распаковать его на моем персональном компьютере, а затем загрузить измененные файлы с помощью файлового менеджера с графическим интерфейсом, но я хочу узнать, как это сделать из командной строки.

В моем случае я пытаюсь обновить YOURLS на сервере Ubuntu, но вопрос, как правило, применим к большинству веб-программ, таких как WordPress или аналогичных.

1 ответ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 (удалить / удалить).

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/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .