scp
命令(secure copy)是一个在 Linux 和其他 Unix-like 系统中用于安全地复制文件和目录的命令行工具。它使用 SSH 协议来确保数据传输过程中的安全性,因此它不仅可以复制文件,还可以用于远程执行命令。
基本语法
scp [选项] [源文件] [目标文件]
- 源文件:可以是本地文件、远程文件或者使用用户@远程主机:文件路径的格式。
- 目标文件:可以是本地文件路径或远程主机路径。
常用选项
-r
:递归复制整个目录。-v
:详细模式,显示传输过程中的详细日志。-C
:压缩标准输入/输出,以加快传输速度。-P
:指定远程主机的端口号。-q
:静默模式,不显示传输过程中的详细日志。-p
:保留文件的修改时间、访问时间和权限。
示例
- 从本地复制到远程主机:
scp localfile.txt user@remotehost:/path/to/destination
这个命令会将本地的 localfile.txt
复制到远程主机的指定目录。
- 从远程主机复制到本地:
scp user@remotehost:/path/to/remotefile.txt /local/directory
这个命令会从远程主机复制 remotefile.txt
到本地目录。
- 递归复制目录:
scp -r /local/directory user@remotehost:/path/to/destination
使用 -r
选项可以递归地复制整个目录及其内容。
- 使用特定端口:
scp -P 2222 localfile.txt user@remotehost:/path/to/destination
这个命令使用端口 2222 而不是默认的 22 端口进行文件复制。
- 压缩传输:
scp -C localfile.txt user@remotehost:/path/to/destination
使用 -C
选项可以在传输过程中压缩文件,以加快传输速度。
注意事项
- 确保远程主机的 SSH 服务正在运行,并且你有权限访问。
- 如果是第一次连接到远程主机,系统可能会询问你是否信任该主机的公钥,你需要确认才能继续。
- 确保你有足够的权限访问源文件和目标路径。
- 使用
scp
命令时,如果涉及到密码输入,建议使用 SSH 密钥认证来提高安全性。
scp
是一个非常实用的工具,它结合了文件复制和安全传输的功能,非常适合在需要安全传输文件的场景中使用。