【问题标题】:How can I copy file from local server to remote with creating directories which absent via SSH?如何通过创建通过 SSH 不存在的目录将文件从本地服务器复制到远程?
【发布时间】:2014-06-17 10:59:26
【问题描述】:

我可以像这样使用SCP 通过SSH 复制文件:

cd /root/dir1/dir2/
scp filename root@192.168.0.19:$PWD/

但是如果在远程服务器上某些目录不存在,例如远程服务器只有 /root/ 并且没有 dir1 和 dir2,那么我无法执行此操作并出现错误。

我怎样才能做到这一点 - 通过 SSH 创建目录来复制文件,以及如何使其成为最简单的方法?

最简单的方法意味着我只能通过$PWD 获取当前路径,即脚本必须是可轻移动的,无需任何更改。

【问题讨论】:

标签: linux bash ssh scp


【解决方案1】:

我可以在远程服务器上创建相同的目录,然后使用 SCP 通过 SSH 将文件复制到其中:

cd /root/dir1/dir2/
ssh -n root@192.168.0.19 "mkdir -p '$PWD'"
scp -p filename root@192.168.0.19:$PWD/

【讨论】:

    【解决方案2】:

    这个命令会做:

    rsync -ahHv --rsync-path="mkdir -p $PWD && rsync" filename -e "ssh -v"  root@192.168.0.19:"$PWD/"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-17
      • 1970-01-01
      • 2015-06-27
      • 2013-03-31
      • 1970-01-01
      • 2021-01-10
      • 1970-01-01
      • 2010-12-24
      相关资源
      最近更新 更多