0
votes

I can copy file via SSH by using SCP like this:

cd /root/dir1/dir2/
scp filename [email protected]:$PWD/

But if on remote server some directories are absent, in example remote server has only /root/ and havn't dir1 and dir2, then I can't do it and I get an error.

How can I do this - to copy file with creating directories which absent via SSH, and how to make it the easiest way?

The easiest way mean that I can get current path only by $PWD, i.e. script must be light moveable without any changes.

2
If you can use ssh you can do a mkdir non-interactively as seen in some answers here: stackoverflow.com/questions/1340048/… - Joe
Look at man scp and check out the -r option. - lurker

2 Answers

1
votes

This command will do it:

rsync -ahHv --rsync-path="mkdir -p $PWD && rsync" filename -e "ssh -v"  [email protected]:"$PWD/"
0
votes

I can make the same directories on the remote servers and copy file to it via SSH by using SCP like this:

cd /root/dir1/dir2/
ssh -n [email protected] "mkdir -p '$PWD'"
scp -p filename [email protected]:$PWD/