如何通过SSH创建目录,将文件从本地服务器复制到远程?

时间:2014-04-30 23:15:28

标签: linux bash ssh scp

我可以使用SSH通过SCP复制文件,如下所示:

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

但是如果在远程服务器上某些目录不存在,例如远程服务器只有/ root /并且没有dir1和dir2,那么我不能这样做而且我收到错误。

我该怎么做 - 通过创建目录而不通过SSH复制文件,以及如何使其成为最简单的方法?

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

2 个答案:

答案 0 :(得分:1)

此命令将执行此操作:

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

答案 1 :(得分:0)

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

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