如何在sftp中实现递归放入

aar*_*ari 14 recursion sftp put

我的Ubuntu中的命令行sftp没有实现递归put.我发现2004年有关于使用-R选项开关实现此类功能的一些争论.所以我认为某种自制的递归是唯一的选择.

IE浏览器.

  • 遍历目录列表
  • 进入目录
  • 如果不存在则mkdir
  • 放文件

我打算用bash做这个,但任何其他语言就足够了.

Rsync或scp不是一个选项,因为我没有对服务器的shell访问权限.只有sftp.

Ili*_* K. 16

看看lftp.它是一个功能强大的文件传输客户端,支持ftp,ftps,http,https,hftp,fish(通过ssh shell 会话传输文件)和sftp.它具有类似ftp的交互式界面,但也允许在命令行中指定所有命令.看mput(非递归但处理glob模式)和mirror(穷人的rsync)命令.

我使用它只处理sftp上传的服务器,如下所示:

lftp -c "open -u $MYUSER,$MYPASSWORD sftp://$TARGET ; mirror -R $SOME_DIRECTORY"
Run Code Online (Sandbox Code Playgroud)