Linux本地文件怎么拷贝到服务器,scp命令怎么用?

想把本地文件传到 Linux 服务器,最直接的办法是在本地终端执行 scp 本地文件 用户名@服务器IP:/目标目录,输入一次密码就传完。 文件大、网络不稳,或者需要经常同步,再考虑 rsync 和图形化工具,效率差别很明显。

scp命令上传本地文件到服务器:语法与参数一次讲清

scp 全称 secure copy,跑在 SSH 协议之上,只要服务器开了 SSH、你能正常登录,这个命令基本就能用,它不需要在服务器上额外装服务端软件,这也是它成为默认选择的原因。

2.12-scp通过命令上传下载文件、文件夹
加载中
2.12-scp通过命令上传下载文件、文件夹
A
Alex-1024
5003--
原视频地址

命令结构拆成三段看

一条标准的 scp 命令,从左到右就是三个部分:

  • 本地源路径:要传的文件或目录,可以写相对路径,也可以写绝对路径。
  • 远程目标地址:格式固定为 用户名@服务器IP:目标目录,中间的冒号不能漏,漏了就会被当成普通文件名。
  • 可选参数:放在 scp 和源路径之间,用来控制端口、递归、压缩等行为。

举个具体例子,本机有个 report.pdf 在下载目录,服务器 IP 是 168.1.100,登录用户是 root,想放到 /data/upload/ 下:

scp ~/Downloads/report.pdf root@192.168.1.100:/data/upload/

回车后提示输入密码,输完就开始传,进度条走完即结束,目标目录必须提前存在,scp 不会自动创建多级目录,这是新手最常遇到问题的地方。

五个常用参数,记住就够用

参数 作用 典型场景
-r 递归复制整个目录 传项目文件夹
-P 指定 SSH 端口(大写) 服务器改过 22 端口
-p 保留文件时间戳和权限 迁移备份文件
-C 传输时压缩 文本类小文件多
-v 输出调试信息 排查连接失败

要注意 -P 和 -p 是两个完全不同的参数,一个管端口,一个管属性,大小写搞反会直接报错。

三类高频操作场景

传单个文件。 就是上面那条命令,最常用,没什么好展开的。

传整个目录。 加 -r:

scp -r ./myproject root@192.168.1.100:/opt/www/

这条命令会把 myproject 目录连同里面的文件一起放过去,如果目标路径写成 /opt/www/myproject,效果是目录重命名;写成 /opt/www/,则是在该目录下生成同名文件夹,差别就在结尾有没有斜杠和目录名。

本地终端在服务器上,要反过来拉文件。 把源和目标位置对调即可:

scp root@192.168.1.100:/var/log/nginx/error.log ./

最后那个 表示存到当前目录,不写会报错。

端口不是22,命令要加-P

很多云服务器为了安全会把 SSH 端口改成 2222 之类,这时命令得带上 -P 2222,并且必须紧跟在 scp 后面:

scp -P 2222 ./app.jar root@192.168.1.100:/data/

顺序写错,比如放到源路径后面,scp 会把它当成要传的文件名,直接报找不到文件。

scp和rsync哪个快?大文件与断点续传的取舍

这是实际工作中被问得最多的一类问题,两者都能传文件,但定位不一样:scp 是”传完就走”,rsync 是”算完差异再传”。

核心差异对比

维度 scp rsync
传输协议 SSH SSH(也可配 rsync 守护进程)
断点续传 不支持 支持,--partial 参数
增量同步 不支持,每次全量 支持,只传变化部分
速度 小文件快,大文件易中断 首传略慢,重传优势明显
排除规则 无 支持 --exclude
适合场景 一次性传几个文件 定期备份、大目录同步

行业共识认为,几十 GB 以上的单文件或几十万个小文件的目录同步,rsync 的综合表现更稳。 原因很实在:网络一抖,scp 就得从头再来,而 rsync 能从断点继续。

什么时候该换rsync

出现下面几种情况,建议直接换:

  • 传的过程中断过一次,不想重传几个 G。
  • 同一个目录需要每周甚至每天同步一次。
  • 目录里有很多日志、缓存文件,只想传代码部分。

对应命令:

rsync -avz --partial --progress ./data/ root@192.168.1.100:/backup/data/

-a 保留属性,-v 显示过程,-z 传输压缩,--partial 保留断点,--progress 显示进度,想排除某些目录,追加 --exclude='node_modules' 即可。

业内专家指出,SSH 加密本身的处理开销是这类传输方式的速度上限之一,所以无论用哪个命令,单连接跑到几十 MB/s 之后想再提升,往往得从网络带宽和加密算法入手,而不是换命令。

Windows本地文件传到Linux服务器怎么做

不少人的本地环境是 Windows,没有原生终端习惯,这时候有三条路可走。

图形化工具:WinSCP 与 FileZilla

WinSCP 是 Windows 上最常用的选择,安装后填服务器 IP、端口、用户名、密码,连上就是左右两栏的界面,左边本地、右边远程,拖拽即可完成上传,FileZilla 逻辑类似,跨平台,Mac 用户也能用。

这类工具的优势是直观,适合偶尔传文件、需要肉眼确认目录结构的场景,缺点是批量操作和自动化能力弱,传大目录时稳定性不如命令行。

Windows 10/11 自带 scp

系统自带 OpenSSH 客户端,直接按 Win + R 输入 cmd 打开命令提示符,就能用和 Linux 完全一样的语法:

scp D:\work\data.zip root@192.168.1.100:/data/

Windows 路径带盘符和反斜杠,注意别写成 Linux 风格,如果提示 scp 不是内部命令,去”设置应用可选功能”里把 OpenSSH 客户端装上。

PowerShell 与 Xftp 的补充选择

PowerShell 里同样能执行 scp,还支持 Copy-Item 配合 SSH 模块做更复杂的操作,Xftp 则是很多运维人员配合 Xshell 使用的工具,支持多标签和队列传输,适合一次要往多台服务器分发文件的场景。

传文件总失败?按这个顺序排查

  1. 先测连通性:ping 服务器IP,通不通决定后面查什么。
  2. 再测 SSH:ssh 用户名@服务器IP,登不上去说明端口、防火墙或密钥有问题,scp 必然失败。
  3. 看目标目录:路径写错、目录不存在、没有写权限,都会报 Permission denied 或 No such file or directory。
  4. 检查端口大小写:-P 没写或写反,报 Connection refused。
  5. 确认磁盘空间:服务器分区满了,传输会在中途中断,用 df -h 看一眼。
  6. 中文文件名乱码:本地和服务器字符集不一致时会出问题,建议关键文件用英文命名。

排查顺序遵循由外到内:网络、认证、路径、权限,逐层排除,比盲目重试有效得多。

Linux把本地文件拷贝到服务器常见问题解答

scp每次都要输密码,能免密吗

可以,本地执行 ssh-keygen -t rsa 生成密钥对,再用 ssh-copy-id 用户名@服务器IP 把公钥推到服务器,之后 scp 和 ssh 都不再询问密码,这是运维环境的标准做法,省去重复输入,也方便写进脚本做定时传输。

传文件夹报错 not a regular file 是什么原因

这条报错的意思是 scp 把目录当成了普通文件处理,原因只有一个:忘了加 -r 参数,补上递归参数后命令即可正常执行,这是 scp 对目录和文件的处理逻辑不同导致的,并非权限问题。

传输速度只有几MB/s,是命令用错了吗

多数情况下不是命令的问题,scp 的速度受限于两端带宽、网络延迟和 SSH 加密开销,跨公网传输时受运营商线路影响尤其明显,可以先在同机房内网测一次,如果内网速度正常、公网慢,瓶颈就在链路上;如果内网也慢,再检查服务器磁盘 IO 和 CPU 负载,对于需要反复传输的大体量数据,改用 rsync 配合压缩参数,实际耗时通常比反复重传的 scp 更短,这也是运维实践中逐渐形成的默认选择。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/linux%e6%9c%ac%e5%9c%b0%e6%96%87%e4%bb%b6%e6%80%8e%e4%b9%88%e6%8b%b7%e8%b4%9d%e5%88%b0%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%8cscp%e5%91%bd%e4%bb%a4%e6%80%8e%e4%b9%88%e7%94%a8%ef%bc%9f/

赞 (0)
上一篇 2026年10月25日 10:16
下一篇 2026年10月25日 10:19

相关推荐

  • excel表格竖写如何实现?,竖写怎么设置?

    在Excel中实现竖写,最直接的方法是选中单元格后,在设置单元格格式的对齐选项卡中将文字方向调整为竖排,但具体操作中,不同版本和场景下还有更高效的技巧或需要注意的细节,excel竖写怎么设置设置竖写的第一步是选中目标单元格或区域,右键点击,选择设置单元格格式,在弹出的窗口中切换到对齐选项卡,在右侧的文字方向下拉……

    2026年7月21日
    3200
  • 泰拉瑞亚国际版服务器ip如何查,具体地址在哪里?

    查泰拉瑞亚国际版服务器IP,核心动作是获取运营方公开的IP和端口、用命令测通,再进游戏填写;手机版和电脑版都没有内置“搜索服务器IP”功能, 下面按场景拆开说,泰拉瑞亚国际版服务器ip怎么查?先分清你要连的是哪种服泰拉瑞亚国际版没有国服那种统一大厅,多数情况下靠IP直连,玩家容易卡在第一步:不知道该从哪拿地址……

    2026年9月17日
    100
  • Excel月天数怎么算?如何计算每月具体天数

    在 Excel 中计算某个月的天数,有几种常用且高效的方法,以下是几种最推荐的方式,按推荐程度排序:使用 EOMONTH 函数(最推荐)这是最常用、最简洁的方法,EOMONTH 函数可以返回指定日期前或后若干个月的最后一天的日期,公式:=DAY(EOMONTH(起始日期, 0))示例:假设 A1 单元格是日期……

    2026年7月11日
    12600
  • 如何构建智能教育协作平台?智能教育平台搭建方案

    构建智能教育协作平台的核心在于打通数据孤岛,实现师生、家校及管理者之间的实时高效协同,而非单纯的技术堆砌,如今的教育场景早已不再是黑板与粉笔的独角戏,想象一下,一位乡村教师想要获取一线城市的优质课件,或者一位家长想实时了解孩子在学校的课堂表现,传统模式下这往往意味着漫长的等待和信息的滞后,智能教育协作平台正是为……

    2026年5月25日
    4300
  • 我的世界PVP材质包服务器怎么用?,哪款PVP材质包最好?

    PvP材质包在服务器里能不能用,关键看版本、服务器资源包策略和材质包类型;多数情况下,Java版可以本地启用并叠在服务器资源包上方,基岩版和网易版则要看服务器是否推送或锁定资源包,普通低火、短剑、透明粒子通常可用,Xray 或改碰撞箱的包会被反作弊针对,我的世界pvp材质包怎么在服务器里用:先分清三件事客户端材……

    2026年9月22日
    200
  • ajax数据库实例怎么实现?ajax连接数据库实例

    AJAX数据库实例的核心在于通过异步技术实现前端页面与后端数据库的无刷新交互,从而显著提升用户体验并降低服务器负载,在传统的Web开发模式中,用户每次提交表单或请求数据,整个页面都会重新加载,这种机制不仅浪费带宽,还让用户体验变得断断续续,引入AJAX(Asynchronous JavaScript and X……

    2026年5月31日
    5200
  • 更新查询中怎么修改数据库数据类型?如何修改mysql数据库字段类型

    在更新查询中修改数据库数据类型,核心在于使用ALTER TABLE语句配合MODIFY COLUMN或CHANGE COLUMN子句,操作前务必确认数据兼容性并备份,以避免数据丢失或截断风险,数据库维护中,修改字段类型是常见但高风险的操作,很多开发者在业务初期设计表结构时,往往低估了数据量的增长或业务逻辑的变更……

    程序编程 2026年5月27日
    3700
  • 广西虚拟主机395元起靠谱吗?虚拟空间租用价格

    广西虚拟主机395元起即可满足个人博客、中小企业官网及轻量级电商的基础建站需求,是追求高性价比与本地化服务用户的优选方案,在数字化浪潮席卷全球的今天,拥有一个稳定、快速的网站已成为企业展示形象、拓展业务的标配,对于身处广西或面向广西市场的用户而言,选择一款价格亲民且性能可靠的虚拟主机显得尤为重要,395元这个价……

    2026年5月28日
    5200
  • 服务器ip地址格式是什么?ipv4和ipv6地址格式区别及示例

    服务器IP地址格式是网络通信的基石,直接影响系统部署、安全策略与运维效率,IPv4与IPv6是当前唯二被广泛采用的IP地址格式,二者在结构、容量与兼容性上存在本质差异,选择不当将导致服务不可达、防火墙策略失效,甚至引发安全漏洞,以下从技术本质、格式规范、实际应用与常见误区四方面展开说明,确保技术决策精准可靠,I……

    程序编程 2026年4月18日
    4700
  • 服务器多了一台怎么办,闲置服务器如何再利用?

    服务器多了一台怎么办?答案很直接:先别急着开机吃灰,也别急着低价甩卖,按这三步走——评估配置、定用途、算成本,大概率能把它变成测试机、备份机或NAS,实在用不上再考虑二手处理,服务器多了一台怎么办?先搞清楚它还能干什么很多公司都遇到过这种情况:项目调整、机房搬迁、设备换代,手里多出一台整机完好的服务器,新机器舍……

    2026年10月20日
    200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注