一、基本信息:
1. SCP = secure copy ,是 Linux、Unix系统自带的 加密远程文件拷贝命令,底层使用SSH协议。
2. Windows 中可以在 CMD / PowerShell 里直接敲 scp 命令。
因为Windows10/11中 自带了 OpenSSH 客户端(包含 scp.exe),安装系统时就放在:
C:\Windows\System32\OpenSSH\ 。所以你在 CMD / PowerShell 里直接敲 scp,其实是在调用微软官方移植的 OpenSSH for Windows。该功能与 Linux 版几乎一致,只是路径写法要按Windows规则来
2. SCP命令和CP命令语法类似,不同于cp命令,SCP命令可以与远程主机进行传输交互
二、语法
1. 基本格式:
scp [选项] 源路径 目标路径
注意: 如果源路径 或 目标路径为 远程服务器,那么,要注意路径前加 冒号 " :"
如果没有冒号,就会被当成本地路径。
2. 常用命令:
| 场景 | 命令示例 |
|---|---|
| 本地上传 → 远程 | scp file.txt user@host:/tmp/ |
| 整个目录上传 | scp -r dir/ user@host:/home/user/ |
| 远程下载 → 本地 | scp user@host:/tmp/file.txt ./ |
| 远程 ↔ 远程 | scp user1@host1:/tmp/f.txt user2@host2:/tmp/ |
3. 常用命令选项设置 :
| 选项 | 说明 |
|---|---|
-r | 递归复制目录 |
-P port | 指定 SSH 端口(默认 22) |
-p | 保留原文件时间戳 |
-q | 安静模式(不输出进度) |
-C | 启用压缩(适合慢网络) |
4. 常见情况(坑):
| 错误示例 | 结果 |
|---|---|
scp local.txt remote.txt | 把文件复制到 本地 remote.txt |
scp C:\file user@host/tmp |
Windows 下路径没加 这个就会复制到本机的对应为止,由于复制后 |
| 远程路径含空格未加引号 | 解析失败,用 " 或 ' 包住 |
再补充一下经常出错的 scp C:\file user@host/tmp,这种直接复制到了本机位置,如图所示,这就是执行复制到 远程主机但是没加冒号导致的复制错误:
会发现: C:\Users\zhangchuhan 目录下多出个 zhangchuhan@192.168.121.22 的文件夹,里面就是 我们刚刚命令行移动的内容

1160

被折叠的 条评论
为什么被折叠?



