如何通过ssh复制目录

hrk*_*hrk 17 ssh directory cp

我与 ssh 连接,我想将一个目录从我的本地复制到我们的远程服务器;我怎样才能做到这一点?我已经阅读了几篇文章,scp但这对我不起作用。有些帖子建议使用 rsync,但就我而言,我只想复制一个目录。

Eri*_*rik 35

如果您想在登录 a 时将目录从机器 a 复制到 b:

scp -r /path/to/directory user@ipaddress:/path/to/destination
Run Code Online (Sandbox Code Playgroud)

如果您想在登录 b 时将目录从机器 a 复制到 b:

scp -r user@ipaddress:/path/to/directory /path/to/destination
Run Code Online (Sandbox Code Playgroud)

我不太明白你说的“不点击我”是什么意思,我以前无数次使用过这种方法。

  • 几年过去了,2020 年,我感谢您的回答,发现它很容易阅读,没有任何问题。工作起来就像一个魅力。 (3认同)

Joh*_*éen 10

您可以使用cpiotar创建存档作为标准输出上的流,将其通过管道传输到 ssh 并在远程主机上提取流。例如,使用 tar:

tar cf - dir | ssh remotehost 'tar xf -'
Run Code Online (Sandbox Code Playgroud)

要将存档解压到远程主机上的不同目录中,请使用

tar cf - dir | ssh remotehost 'tar xfC - /path/on/remote'
Run Code Online (Sandbox Code Playgroud)

如果您tar支持该C选项或:

tar cf - dir | ssh remotehost '
  cd /path/on/remote && tar xf -'
Run Code Online (Sandbox Code Playgroud)

如果不。

如果在低带宽连接上,您可能需要压缩流:

tar cf - dir | gzip -3 | ssh remotehost '
  cd /path/on/remote && gunzip | tar xf -'
Run Code Online (Sandbox Code Playgroud)

(将gzip/替换gunzip为您选择的流压缩器,如果您发现 CPU 是瓶颈,lzop/可能是更好的选择)。lzop -d