Я использую (удивительно) утилиту 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" нет опции