说明

有时候,我们希望把文件,从一台服务器拷贝到另一台服务器。

scp 提供了这种能力。

远程到本地

复制文件夹

scp -r user@remote_host:/path/to/remote/directory /path/to/local/directory

复制文件

scp user@remote_host:/path/to/remote/directory/file /path/to/local/directory/file

本地到远程

文件夹

scp -r /home/localuser/data user@remote.server.com:/home/user/data

文件

scp -r /home/localuser/data/file user@remote.server.com:/home/user/data/file

chat

介绍一下 scp

使用 scp 命令可以方便地将远程服务器上的文件夹复制到本地。

scp 支持递归复制目录,使用 -r 选项可以实现这一点。以下是将远程文件夹复制到本地的步骤:

语法

scp -r user@remote_host:/path/to/remote/directory /path/to/local/directory

示例操作

假设你想将远程服务器 remote.server.com 上的 /home/user/data 目录复制到本地的 /home/localuser/data 目录:

  1. 打开终端。
  2. 输入以下命令:

    scp -r user@remote.server.com:/home/user/data /home/localuser/data
    

详细步骤

  1. 打开终端

  2. 运行 scp 命令

    scp -r user@remote.server.com:/home/user/data /home/localuser/data
    

    其中:

    • user 是远程服务器上的用户名。
    • remote.server.com 是远程服务器的主机名或 IP 地址。
    • /home/user/data 是远程服务器上要复制的目录。
    • /home/localuser/data 是本地计算机上的目标目录路径。

注意事项

  1. 目标目录:确保本地目标目录存在。如果目标目录不存在,scp 将创建一个新的目录。
  2. 权限:确保你有权限访问远程服务器上的文件夹以及在本地写入目标目录。
  3. SSH 密钥:如果你使用 SSH 密钥进行认证,确保密钥已经正确配置。

进阶用法

如果你需要通过指定端口连接,可以使用 -P 选项。例如,如果远程服务器的 SSH 服务在端口 2222 上:

scp -P 2222 -r user@remote.server.com:/home/user/data /home/localuser/data

如果你需要将本地目录复制到远程服务器上,可以交换源路径和目标路径的位置:

scp -r /home/localuser/data user@remote.server.com:/home/user/data