scp传文件核心三点:方向由路径位置决定、远程地址用user@host:格式、传目录必须加-r;本地传远程为scp 本地路径 user@host:远程路径,下载则顺序相反,非标端口用-p,保留权限用-p,压缩传输用-c。

用 scp 传文件,核心就三点:方向靠路径位置定、远程地址带 user@host: 格式、目录要加 -r。
本地传到远程
命令结构是 scp 本地路径 用户@远程主机:远程路径。冒号不能少,前面是用户名和IP(或域名),后面是目标目录。
- 传单个文件:
scp report.pdf alice@192.168.1.50:/home/alice/docs/(自动用原文件名) - 传时重命名:
scp config.yml alice@192.168.1.50:/etc/nginx/conf.d/app.conf - 没写用户名(如只写
192.168.1.50),执行时会提示你输用户名和密码
远程下载到本地
把上面的顺序倒过来就行:scp 用户@远程主机:远程路径 本地路径。
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
- 拉一个文件到当前目录:
scp bob@server.example.com:/var/log/app.log ./ - 指定保存位置和名字:
scp admin@10.0.2.100:/backup/db.sql /mnt/backup/latest.sql - 点号
.表示当前目录,也可以写完整路径,比如/home/user/downloads/
传输整个文件夹
默认 scp 只认文件,传目录必须加 -r(recursive),否则报错“not a regular file”。
- 本地目录推过去:
scp -r myapp/ dev@192.168.1.100:/opt/webapps/ - 从远程拉整个目录:
scp -r prod@db01:/var/backups/2024-07/ ./backups/ - 目录末尾斜杠不影响内容,但会影响目标层级(
/path/dir和/path/dir/效果一样)
常用增强选项
遇到非标端口、权限保留、大文件慢传等情况,加几个参数就能解决。
- 远程 SSH 端口不是 22?用 -P(大写 P)指定,比如
scp -P 2222 file.txt user@host:/tmp/ - 想保留时间戳和权限?加上 -p:
scp -p -r conf/ admin@192.168.5.20:/etc/myapp/ - 传大文件太慢?启用压缩:-C,适合文本类或未压缩数据
- 调试连不上?加 -v 看详细过程,比如认证失败、密钥路径错等










