SCP命令

scp(secure copy)是一个用于在网络中通过 SSH 进行安全文件复制的命令行工具。它允许用户在本地计算机和远程计算机之间、或在两台远程计算机之间安全地传输文件或目录。

基本语法:

scp [选项] [源文件或目录] [目标位置]
  • 源文件或目录:要复制的文件或目录路径。
  • 目标位置:目标路径,可以是本地路径或远程路径,格式为 [用户名@主机地址:路径]

常用选项:

  • -r:递归复制整个目录。
  • -P port:指定连接远程主机的端口(注意是大写 P)。
  • -i identity_file:指定用于连接的私钥文件。
  • -v:详细模式,显示调试信息。
  • -C:启用压缩以提高传输效率。

示例:

1. 从本地复制文件到远程主机

将本地文件 file.txt 复制到远程主机 example.com 上的用户 username 的home目录:

scp file.txt username@example.com:

2. 从远程主机复制文件到本地

将远程主机 example.com 上用户 username 的文件 file.txt 复制到本地当前目录:

scp username@example.com:file.txt .

3. 从本地复制目录到远程主机

将本地目录 dir 递归复制到远程主机 example.com 上用户 username 的目录 /path/to/remote/dir

scp -r dir username@example.com:/path/to/remote/dir

4. 从远程主机复制目录到本地

将远程主机 example.com 上用户 username 的目录 /path/to/remote/dir 递归复制到本地当前目录:

scp -r username@example.com:/path/to/remote/dir .

5. 指定远程主机的端口

如果远程主机的 SSH 服务运行在非默认端口(例如 2222),可以使用 -P 选项指定端口:

scp -P 2222 file.txt username@example.com:/path/to/remote/dir

6. 使用指定的私钥文件进行身份验证

如果使用 SSH 密钥进行身份验证,可以使用 -i 选项指定密钥文件:

scp -i /path/to/private_key file.txt username@example.com:/path/to/remote/dir

7. 启用压缩以加快传输速度

通过 -C 选项启用压缩,以减少传输数据量:

scp -C file.txt username@example.com:/path/to/remote/dir