Wednesday 18 October 2017

put - sftp: upload all files, directories and sub-directories contained in a folder


On machine A I have the folder


/home/a/

On machine B I have the folder


/home/b/

I wish transfer all files, directories and sub-directories of /home/a in /home/b with sftp On machine A I tried the commands:


sftp fibon82@machineB.com
put /home/a/* /home/b/

but it doesn't work, i get the error message: "skipping non-regular file /home/a/a1"... [a1 is a sub-directory of a]
How could I modify the put instruction?


Thanks! :)



I solved using scp:


scp -r /home/a/ fibon82@machineB.com:/home/b/

Answer



Although not strictly equivalent to sftp, rsync is a very powerful alternative for scp and sftp, especially when updating the copies from machine A to machine B, as it doesn't copy the files that haven't been altered; it's also able to remove files from machine B that have been deleted from machine A (only when it's told to of course).


In your case, the syntax would be


rsync -zrp /home/a/ user@remote.host.com:/home/b/

The -r option is for recursively copying files, -z enables compression during the transfer, and -p preserves the file permissions (file creation, edit, etc.) when copying, which is something that scp doesn't do AFAIK. Many more options are possible; as usual, read the man pages.


No comments:

Post a Comment

Where does Skype save my contact's avatars in Linux?

I'm using Skype on Linux. Where can I find images cached by skype of my contact's avatars? Answer I wanted to get those Skype avat...