I am connected with ssh
and I want to copy a directory from my local to our remote server; how can I do that?
I have read several post using scp
but that doesn't worked for me. Some posts suggested using rsync
but in my case I just want to copy one directory.
3 Answers
If you want to copy a directory from machine a to b while logged into a:
scp -r /path/to/directory user@machine_b_ipaddress:/path/to/destination
If you want to copy a directory from machine a to b while logged into b:
scp -r user@machine_a_ipaddress:/path/to/directory /path/to/destination
-
I think more intuitive answer would be "from machine b to a while logged into a" anybody can swap a in the head, but would indicate source/destination much better, unless I'm crazy :) Commented Apr 10, 2020 at 20:26
-
@PawelCioch While I definitely agree with you, it's not difficult to comprehend. I did write this answer almost 3 years ago, and I wasn't very good with English :)– ErikCommented Apr 11, 2020 at 0:17
-
3Well several years on, 2020, and I thank you for your answer, found it easy to read with no problems. Worked like a charm.– redfox05Commented Dec 1, 2020 at 12:01
-
1
You can use cpio
or tar
to create an archive as a stream on standard output, pipe that to ssh and extract the stream on the remote host. For example, using tar:
tar cf - dir | ssh remotehost 'tar xf -'
To extract the archive in a different directory on the remote host, use
tar cf - dir | ssh remotehost 'tar xfC - /path/on/remote'
If your tar
supports the C
option or:
tar cf - dir | ssh remotehost '
cd /path/on/remote && tar xf -'
if not.
If on a low bandwidth connection, you may want to compress the stream:
tar cf - dir | gzip -3 | ssh remotehost '
cd /path/on/remote && gunzip | tar xf -'
(replace gzip
/gunzip
with your stream compressor of choice, lzop
/lzop -d
may be a better choice if you find that CPU is the bottleneck).
Think this might work for you:
scp file user@host:/location_to_save_file
scp
- secure copy
- the file(s) you want to scp to remote node
- the user who has permissions to scp file, i.e sysadmin, etc
@
- user and host separator
host - the node you are scp the file(s)
:/location_to_save_file
- absolute path to save the file
-
With the addition that you need to add the
-r
flag if you want to copy a directory instead of a file, like @hrk is asking. Commented Dec 22, 2022 at 8:25