cyc*_*hoi 5 command-line-interface ftp
在远程 FTP 服务器上,我在目录中有一组文件remote.dir1
。我想将该目录中的所有文件移动到remote.dir2
.
我正在使用lftp
并正在尝试这样的事情:
lftp> mv remote.dir1/* remote.dir2/
Run Code Online (Sandbox Code Playgroud)
它不起作用并显示: Access failed: 550 remote.dir1/*: The filename, directory name, or volume label syntax is incorrect.
我也试过:
lftp> glob -a mv remote.dir1/* remote.dir2/
Run Code Online (Sandbox Code Playgroud)
显示使用信息: Usage: mv <file1> <file2>
但是,移动单个文件有效: lftp> mv remote.dir1/file1 remote.dir2/
作为最后的手段,我们可以构建一个包含一组 lftpmv
命令和source
它的文件。
有没有我不知道的解决方案?
或者,是否有任何功能强大的命令行工具来完成这项任务?
编辑:我仅限于 FTP 环境,因此由于环境限制,只能接受使用 FTP 的解决方案。
出于文档目的,我将发布我用来完成任务的步骤。任何更好的解决方案将不胜感激。;-)
注意:此解决方案使用lftp
FTP 客户端。您可能必须先将其安装在您的计算机上,然后才能继续。
解决方案:
lftp> renlist remote.dir1/ | "sed 's/\(.*\)/mv \"\1\" \"remote.dir2\/\"/'" > list
lftp> source list
lftp> !rm list
Run Code Online (Sandbox Code Playgroud)
或者,单行TM:
lftp> renlist remote.dir1/ | "sed 's/\(.*\)/mv \"\1\" \"remote.dir2\/\"/'" > list && source list && !rm list
Run Code Online (Sandbox Code Playgroud)