Why not rsync instead? You may have to install it (use your package manager), but it's made for this kind of thing.
RSYNC_PASSWORD='password' rsync -rtv /path/to/dir/ email@example.com:remote/dir
-r will recursively rsync, -t preserves time stamps so existing files aren't re-uploaded (effectively), and -v is verbose.
If you create and copy your ssh public key, you won't need to do the
If you don't have a public/private key combination, run:
This assumes your remote server supports connecting and updating the
$HOME/.ssh/authorized_keys file; otherwise, you'll have to manually upload the
authorized_keys file with your public key.
This assumes you're running a recent version of linux. Unix systems like Mac OS don't have the
ssh-copy-key-id. Here's some more information on generating and installing your public key on a remote host: