scp has the -r argument. So, try using:
$ scp -r ~/local_dir firstname.lastname@example.org:/var/www/html/target_dir
The -r argument works just like the -r arg in cp, it will transfer your entire folder and all the files and subdirectories inside.
If your goal is to transfer all files from
* wildcard does the trick:
$ scp ~/local_dir/* email@example.com:/var/www/html/target_dir
-r option means “recursively”, so you must write it when you’re trying to transfer an entire directory or several directories.
-r Recursively copy entire directories. Note that scp follows symbolic links encountered in the tree traversal.
So if you have sub-directories inside
local_dir, the last example will only transfer files, but if you set the
-r option, it will transfer files and directories.
/. to your source directory will transfer its contents instead of the directory itself. In contrast to the wildcard solution, this will include any hidden files too.
$ scp -r ~/local_dir/. firstname.lastname@example.org:/var/www/html/target_dir
Credit for this solution goes to roaima, but I thought it should be posted as an actual answer, not only a comment.