Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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


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?

share|improve this question
up vote 28 down vote accepted

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 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.

share|improve this answer

scp has a recursive flag that will do what you want. scp -r /base/directory user@server:/to/location

from man scp

-r      Recursively copy entire directories.  Note that scp follows symbolic
          links encountered in the tree traversal.
share|improve this answer

scp -r and rsync -r are the most reliable ways to get what you want, as others have noted.

You can also use sshfs to 'mount' it as if it were a local drive: sshfs user@host:/site /mnt/mountpoint

(However you're probably better off working locally and deploying with rsync. Just another tool to be aware of.)

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.