news 2026/9/3 5:39:34

Linux命令:文件传输命令scp详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux命令:文件传输命令scp详解

以下是 Linux 中scp(secure copy)命令的详细讲解,涵盖常用用法、选项、典型场景和注意事项,适合初学者到中高级用户参考。

1. 什么是 scp 命令?

scp是基于SSH协议的文件/目录安全传输工具,用于:

  • 本地 ↔ 远程服务器
  • 远程服务器 ↔ 远程服务器
  • 本地 ↔ 本地(较少用)

它比 ftp、rsync(默认明文)更安全,因为数据全程加密。

2. 基本语法

scp[选项]源地址 目标地址

常用格式

# 本地 → 远程scp本地文件/目录 用户名@远程主机:远程路径# 远程 → 本地scp用户名@远程主机:远程文件/目录 本地路径# 远程 → 远程scp用户名1@主机1:文件 用户名2@主机2:目标路径

3. 常用选项一览(最重要)

选项说明示例
-r递归复制目录(必须加)scp -r dir user@host:/path/
-P指定 SSH 端口(大写 P)-P 2222
-p保留文件的权限、时间戳等属性常用于备份场景
-v显示详细调试信息(排查连接问题)
-q安静模式,不显示进度条和警告脚本中常用
-C启用压缩传输(适合文本文件、大文件)节省带宽
-i指定私钥文件-i ~/.ssh/mykey
-l限制带宽(单位 Kbit/s)-l 1000≈ 1Mbps
-F指定自定义 ssh 配置文件很少用
-o传递 ssh 选项(如 StrictHostKeyChecking)-o StrictHostKeyChecking=no

4. 实用示例(按场景分类)

4.1 本地上传到远程服务器
# 上传单个文件scpreport.pdf user@192.168.1.100:/home/user/docs/# 上传目录(必须加 -r)scp-r my_project/ user@192.168.1.100:/var/www/# 上传到用户家目录(可省略路径)scpnginx.conf user@server:~/# 指定端口 + 私钥scp-P2222-i ~/.ssh/id_rsa_prod backup.tar.gz prod@203.0.113.5:/backup/
4.2 从远程服务器下载到本地
# 下载单个文件scpuser@server:/var/log/app.log ./logs/# 下载整个目录scp-r user@server:/home/user/data ./data_backup/# 下载并保留权限/时间戳scp-rp user@server:/etc/nginx/nginx.conf ./nginx.conf.bak
4.3 服务器之间传输(跳板场景)
# 从 server1 复制到 server2scpuser1@server1:/data/bigfile.zip user2@server2:/data/# 通过跳板机(本地先到跳板,再到目标)——更推荐用 rsync 或 ssh 代理
4.4 常用高级组合
# 压缩传输 + 递归 + 保留属性 + 指定端口scp-Crp -P2222-C big_folder/ user@host:/target/# 限速 5MB/s(50000 Kbit/s)传输大文件scp-l50000large_video.mp4 user@host:/downloads/# 跳过首次连接的 "Are you sure you want to continue connecting?" 提示scp-oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/nullfileuser@host:/path# 只传输目录中 .sql 文件scpuser@host:/backup/*.sql ./restore/

5. 常见问题与解决

问题解决方法
提示Permission denied1. 检查用户名/密码/密钥
2. 检查目标目录写权限ls -ld 目标目录
连接超时 / No route to host检查网络、防火墙、端口(默认 22)、-P是否写错
Host key verification failed1.ssh-keygen -R 主机IP清空旧记录
2. 加-o StrictHostKeyChecking=no
速度很慢1. 加-C压缩
2. 检查网络
3. 考虑用 rsync 替代
拷贝大量小文件很慢scp 不擅长大量小文件,建议改用rsync -avz --progress
想看到进度条默认有进度条;若没有,可加-v或使用rsync

6. scp vs rsync 快速对比(建议记住)

项目scprsync
协议SSHSSH 或 rsync daemon
增量传输不支持支持(只传差异部分)
大量小文件较慢快很多
断点续传不支持支持(配合--partial
保留属性-p-a(更全面)
压缩-C-z
进度条友好一般更好
推荐场景偶尔传几个文件/目录备份、同步、大目录、频繁传输

结论:日常简单传输 → 用 scp;需要高效、增量、大量文件 → 优先考虑 rsync。

7. 小技巧速查

# 快速把本地当前目录传到远程同名目录scp-r.user@host:/home/user/project/# 只传目录内容(不包含最外层文件夹)scp-r ./myapp/* user@host:/var/www/myapp/# 批量上传所有 .zip 文件scp*.zip user@host:~/downloads/

希望这篇详解对你有帮助!如果有具体场景(比如“如何传 100G 数据”“公司内网跳板机怎么传”),可以告诉我,我再给你更针对性的写法。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 21:23:05

Mac M1芯片能跑PyTorch吗?对比CUDA版本的兼容性差异

Mac M1芯片能跑PyTorch吗?对比CUDA版本的兼容性差异 在深度学习开发的世界里,硬件平台的选择往往决定了整个项目的起点。过去十年中,NVIDIA GPU CUDA 几乎成了 PyTorch 开发的“默认配置”。但自从苹果推出搭载 M1 芯片的 Mac 后&#xff0…

作者头像 李华
网站建设 2026/9/2 21:30:38

GitHub热门项目推荐:基于PyTorch的开源大模型实战案例汇总

GitHub热门项目推荐:基于PyTorch的开源大模型实战案例汇总 在深度学习领域,最让人头疼的往往不是模型设计本身,而是环境配置——你有没有经历过花一整天时间只为让 torch.cuda.is_available() 返回 True?明明代码写好了&#xff0…

作者头像 李华
网站建设 2026/9/2 13:39:00

Markdown表格语法大全:清晰展示模型评估指标结果

Markdown表格语法与模型评估实践:高效展示PyTorch-CUDA实验结果 在深度学习项目中,我们常常面临这样一个现实:训练了十几个模型、跑了上百个epoch,最终却只能靠一堆零散的日志文件和脑中的记忆来判断哪个模型“最好”。更糟的是&a…

作者头像 李华
网站建设 2026/9/2 20:40:59

YOLOv5目标检测实战:结合PyTorch与CUDA实现GPU加速推理

YOLOv5目标检测实战:结合PyTorch与CUDA实现GPU加速推理 在智能安防摄像头实时识别行人、工业质检系统毫秒级发现产品缺陷的今天,一个共同的技术底座正在支撑这些高并发视觉任务——基于GPU加速的目标检测推理系统。当YOLOv5遇上PyTorch和CUDA&#xff0c…

作者头像 李华
网站建设 2026/9/2 21:30:13

【课程设计/毕业设计】基于SpringBoot+Vue的服务展示 - 在线预约 - 用品商城 - 互动反馈宠物生活馆网站的设计与实现【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/9/3 4:27:57

diskinfo下载官网替代方案:监控GPU服务器存储状态的方法

监控GPU服务器存储状态:绕过diskinfo官网限制的实用方案 在当今AI模型动辄数百GB、数据集规模持续膨胀的背景下,GPU服务器早已不仅是“算得快”的机器,更是一个对存储系统高度敏感的复杂系统。训练任务中途因磁盘满载而崩溃,或是由…

作者头像 李华