scp 命令
2024年11月1日大约 2 分钟
scp(Secure Copy Protocol)是 Linux 和 Unix 系统中基于 SSH 协议的安全文件传输命令,用于在本地计算机和远程服务器之间或在两台远程服务器之间复制文件或目录。
基本语法
scp [选项] 源文件 目标文件- 源文件和目标文件格式可以是
user@host:path,也可以是本地路径。 - 如果没有指定用户,
scp会默认使用当前用户。
常用选项
-r:递归复制目录,用于传输整个目录。-P [port]:指定远程主机的端口(注意大写P)。-C:在传输过程中启用压缩,以提高传输效率。-i [identity_file]:指定 SSH 密钥文件。-v:详细模式,显示传输过程中的调试信息。-q:静默模式,抑制输出。
常见用法
1. 从本地复制文件到远程服务器
scp /path/to/local/file username@remote_host:/path/to/remote/directory/示例:将本地文件
example.txt上传到远程服务器的/home/username/目录:scp example.txt user@192.168.1.100:/home/user/
2. 从远程服务器复制文件到本地
scp username@remote_host:/path/to/remote/file /path/to/local/directory/示例:将远程服务器上的
example.txt下载到本地/home/user/目录:scp user@192.168.1.100:/home/user/example.txt /home/localuser/
3. 递归复制目录
scp -r /path/to/local/directory username@remote_host:/path/to/remote/directory/示例:将本地目录
mydir上传到远程服务器:scp -r mydir user@192.168.1.100:/home/user/
4. 指定远程服务器端口
scp -P 2222 /path/to/local/file username@remote_host:/path/to/remote/directory/示例:如果远程服务器的 SSH 服务在 2222 端口,则可以使用以下命令:
scp -P 2222 example.txt user@192.168.1.100:/home/user/
5. 使用 SSH 密钥文件
scp -i /path/to/private_key /path/to/local/file username@remote_host:/path/to/remote/directory/示例:使用密钥
id_rsa复制文件:scp -i ~/.ssh/id_rsa example.txt user@192.168.1.100:/home/user/
6. 在两台远程服务器之间传输文件
scp username1@remote_host1:/path/to/remote/file username2@remote_host2:/path/to/remote/directory/示例:将
remote_host1上的文件复制到remote_host2:scp user1@192.168.1.100:/home/user1/example.txt user2@192.168.1.101:/home/user2/