sftp get -r 不覆盖

sftp get -r 不覆盖

我经常通过 sftp 协议连接到数据库,并通过执行以下操作获取数据get -r

有没有选项可以跳过计算机上所有现有文件?我尝试了 get -r --overwrite,但它不起作用。(我知道我可以将文件设置为只读,但我想找到更好的方法)。

答案1

使用 sftp 可以实现这一点。使用“get -a -r”。根据 ubuntu 的 sftp 手册页:http://manpages.ubuntu.com/manpages/artful/man1/sftp.1.html-a 选项尝试继续中断的传输,并且仅当文件存在差异时才覆盖文件。

答案2

不,这是不可能的。手册页sftp没有提到任何可以实现这一点的选项。最好将文件复制到某个已知为空的位置,然后使用以下命令复制到您想要的位置

get -r remote_path/ empty_path/
!cp --no-clobber empty_path/ real_target/

答案3

我建议rsync使用ssh

rsync -avz -e ssh --progress user@server:/var/db ~/db

进一步阅读:

相关内容