Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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?

share|improve this question
add comment

3 Answers

up vote 18 down vote accepted

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

However if you are only making updates, not re-creating the whole thing, 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.

share|improve this answer
add comment

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
add comment

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
add comment

Your Answer

 
discard

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.