У меня есть сценарий оболочки, который развертывает приложение на промежуточном сервере. Однако после развертывания необходимо создать резервную копию и восстановить один каталог приложения (чтобы он не перезаписывался). Мне удается сделать резервную копию каталога, но часть восстановления работает не так, как ожидалось. В основном, вот две строки в сценарии оболочки:
...
# backup user avatars
mv vitex/app/modules/users/pub/img/users/ ~/tmp/img-users.BAK/ &> /dev/null
...
# restore user avatars
mv ~/tmp/img-users.BAK/ vitex/app/modules/users/pub/img/users/ &> /dev/null
Проблема в том, что первая команда создает правильную папку в ~/tmp/
, а вторая команда создает vitex/app/modules/users/pub/img/users/img-users.BAK/
, что не хорошо.
Ожидаемое поведение будет таким img-users.BAK
переместит все файлы назад, перезаписав все файлы в папке назначения, оставив все остальные файлы без изменений.
Как это может быть сделано?
Спасибо!
Примечание: рекурсивность не требуется, так как по этому пути нет каталога.
** Редактировать **
Шаг 1: резервный каталог
До
./vitex/app/modules/users/pub/img/
./users/
./1.png
./14.png
./README
...
./tmp/
<empty>
После
./vitex/app/modules/users/pub/img/
<empty>
./tmp/
./img-users.BAK/
./1.png
./14.png
./README
...
Все как и ожидалось.
Шаг 2: Восстановить каталог
До
./vitex/app/modules/users/pub/img/
./users/
./1.png
./3.png
./README
...
./tmp/
./img-users.BAK/
./1.png
./14.png
./README
...
После (фактический)
./vitex/app/modules/users/pub/img/
./users/
./img-users.BAK/
./1.png
./14.png
./README
...
./3.png
./1.png
./README
...
./tmp/
<empty>
После (ожидается)
./vitex/app/modules/users/pub/img/
./users/
./1.png <-- overwritten
./14.png
./3.png
./README <-- overwritten
...
./tmp/
<empty>