Copying a Directory with SCP
Even if you don't already know how to use the command,
Here is an example of using
One important thing to note is that
Here is an example of using
scp
should be a bit more familiar to you thanks to its similarity to ssh
.
The biggest differences come with specifying file/directory paths. In
this short article we'll be dealing with directories specifically.Downloading a Directory
In this use-case, we want to usescp
to download a directory from a remote server to our local machine. To achieve this, we'll use the -r
flag, which tells scp
to recursively copy all of the directory's contents to our machine.Here is an example of using
scp
to download a directory:$ scp -r user@ssh.example.com:/path/to/remote/source /path/to/local/destination
Pretty simple, right? The -r
flag is the only difference between downloading a single file and downloading an entire directory. With -r
specified, the directory tree is recursively traversed and each file encountered is downloaded.One important thing to note is that
scp
does follow symbolic links within directories, so just be aware in case this matters for your purposes.Uploading a Directory
The same exact concepts as downloading a directory apply here as well. You'll probably notice that the only difference is where we specify the source directory within the actual command.Here is an example of using
scp
to upload a folder:$ scp -r /path/to/local/source user@ssh.example.com:/path/to/remote/destination
When the source path comes first, like in the example above, it is
assumed to be referring to a directory on your local machine, which is
then recursively transferred to the destination machine thanks to the -r
flag, as before.Conclusion
For more information on thescp
command, I'd highly encourage you to check out the docs with man scp
. Not only is this the fastest way to learn about the command, but it's a good habit to get in to for any Unix command.