Ubuntu – scp a folder that has sub folders

scpUbuntu

I have a folder that contains files for a static website like:

/site/index.html
/site/css/css.css
/site/js/js.js
/site/images/...

If I update something on my laptop, I want a single command to send the files off to my ubuntu server. I don't want to setup FTP on it if I don't have too, wondering if scp would be able to handle this?

Best Answer

The command scp -r source user@target:dest will walk all subdirectories of source and copy them.

However, scp behaves like cp and always copies files, even if it is the same on both source and destination. [See here for a workaround.]

As this is a static website, you are most likely only making updates, not re-creating the whole thing, so you will probably find things move along faster if you use rsync over ssh instead of scp. Probably something like

rsync -av -e ssh source user@target:dest

...to get started. If you are doing this across a LAN, I would personally use the options -avW instead for rsync.

Rsync also gives you the ability to duplicate deletions in your source; so if you remove a file from your tree, you can run rsync as above, and include the flag --delete and it will remove the same file from the destination side.