переместить каталог в удаленную папку - PullRequest
0 голосов
/ 23 сентября 2019

Я использую (удивительно) утилиту lftp для загрузки файлов на удаленный сервер (с помощью команды обратного зеркала).

Они сначала загружаются во временную папку, а после того, как все они были загружены(~ 6000 файлов, с проектными зависимостями), я хочу переименовать эту временную папку.

Процесс загрузки:

lftp --env-password sftp://$LFTP_USERNAME@$LFTP_HOSTNAME -e "mirror --reverse --verbose --delete build /home/whatever/tmp; bye"

Результат /home/whatever (на сервере FTP), поэтомупока все хорошо:

├── tmp
|   ├── file1
|   ├── file2
|   ├── subfolder1
|   |   ├── file3
|   |   └── file4

При чтении документации lftp существует команда с именем mmv, цель которой состоит в том, чтобы, если путь к записи заканчивается на /, переименовать весь каталог.

Однако он сохраняет старое имя каталога.

Я не нашел способа выполнить такую ​​операцию с шаблоном глобуса, как, к сожалению, /home/whatever/tmp/*.

lftp --env-password sftp://$LFTP_USERNAME@$LFTP_HOSTNAME -e "mkdir -pf /home/whatever/current; mmv /home/whatever/tmp/ /home/whatever/current; bye"

Результат:

├── current
|   ├── tmp
|   |   ├── file1
|   |   ├── file2
|   |   ├── subfolder1
|   |   |   ├── file3
|   |   |   └── file4

Вместо (ожидаемый результат):

├── current
|   ├── file1
|   ├── file2
|   ├── subfolder1
|   |   ├── file3
|   |   └── file4

Любая подсказка?

Число файлов и папок неизвестно, применяя mmv ко всем подпапкам или файлампод "tmp" нет опции

...