我使用(惊人的)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/*
这样的glob模式进行此类操作的任何方法。
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
有任何提示吗?
文件和文件夹的数量未知,不能在所有子文件夹或“ tmp”下的文件上应用mmv