怎么在Linux服务器下载文件夹?,linux下载命令是什么

开篇直接给答案

在Linux服务器上下载文件夹,最直接、最通用的方案是用scp -r命令,它基于SSH协议,一条命令就能把整个目录树从服务器拉到本地。 无论你是从本地连接服务器,还是在两台服务器之间搬运数据,这个命令都适用,下面按不同场景给你拆解具体操作。

从本地下载:用scp -r拉取整个目录

这是最典型的场景,你的电脑上打开终端,想要把服务器上某个项目目录或日志文件夹下载到本地,核心命令格式如下:

2.12-scp通过命令上传下载文件、文件夹
加载中
2.12-scp通过命令上传下载文件、文件夹
A
Alex-1024
5008--
原视频地址
scp -r 用户名@服务器IP:服务器上的绝对路径 /本地保存路径/

看起来抽象,我举个具体例子,当前服务器IP是168.1.100,用户名是root,服务器上有个文件夹在/data/www/mysite,你想下载到本地当前目录下的backup文件夹里:

scp -r root@192.168.1.100:/data/www/mysite ./backup/

执行后系统会提示输入密码,输完回车就开始传输。-r参数是关键,少了它scp会报错,因为它默认只能传文件,不能递归处理文件夹。

下载到本地时注意这几点

  • 路径中的(波浪号)会被识别为主目录,比如scp -r root@IP:~/www /local/可以正常使用。
  • 如果服务器SSH端口不是默认的22,需要加-P参数指定端口号,注意是大写P,例如scp -r -P 2222 root@IP:/data /local/。
  • 下载大文件夹时建议在命令前加nohup,避免终端断开导致传输中断,比如nohup scp -r root@IP:/data /local/ &。
  • 本地路径必须存在,否则命令会报“No such file or directory”。

服务器之间传输文件夹:scp反向操作和第三方中转

有时候你在两台服务器之间搬运数据,比如把A服务器的网站目录迁移到B服务器,这个场景有两种常见做法。

在一台服务器上直接操作

登录到B服务器,执行拉取命令,把A服务器的文件夹拉过来:

scp -r root@A服务器IP:/data/www /data/www_bak

这种方式的好处是操作简单,适合一次性迁移,但如果A服务器的带宽有限,传输速度会偏慢,而且受制于两台服务器之间的网络链路质量。

通过本地电脑中转

先把文件夹从A服务器下载到本地,再上传到B服务器:

# 第一步:A服务器下载到本地
scp -r root@A服务器IP:/data/www /local/temp/
# 第二步:本地上传到B服务器
scp -r /local/temp/www root@B服务器IP:/data/

这种方式的缺点是经过两次网络传输,耗时翻倍,只推荐在无法直接连通两台服务器(比如内网隔离)的情况下使用。

不想敲命令?用这些替代方案更方便

不是所有人都喜欢在终端里敲命令,尤其是文件夹特别大,或者你只在偶尔需要下载时不想记参数。

tar打包后下载单个文件

先压缩再传输,能显著减少传输时间,尤其是网站目录、图片文件夹这类包含大量小文件的情况,在服务器上执行:

tar -czvf mysite.tar.gz /data/www/mysite

然后本地用scp下载这个压缩包:

scp root@IP:/data/www/mysite.tar.gz ./

下载完在本地解压:

tar -xzvf mysite.tar.gz

这个方法有个额外好处:打包后的文件可以完整保留文件夹的权限属主和时间戳,还原后目录结构完全一致。行业共识认为,在传输包含大量小文件(比如静态资源、图片素材)的目录时,先打包再传输的效率比直接scp传输高出一截。

rsync断点续传

文件夹特别大,比如几个GB的数据库备份或者视频素材,传输中途断了就要从头再来,这是用scp最大的痛点,rsync支持断点续传和增量同步:

rsync -avz --progress root@IP:/data/www/mysite /local/backup/

参数说明:

  • -a 归档模式,保留权限、时间戳等信息
  • -v 显示详细输出
  • -z 传输时压缩
  • --progress 显示传输进度

rsync还有个好处:本地已经有的文件不会重复传输,二次同步时速度极快。做定期备份的场景下,它是比scp更合适的选择。

lrzsz工具的sz命令(适合小文件)

如果你是通过Xshell、SecureCRT这类终端软件连接服务器的,可以用lrzsz的sz命令直接弹窗保存文件到本地:

sz /data/www/mysite.tar.gz

执行后终端会弹出让你选择保存位置的窗口,但这个命令只支持传单个文件,不支持文件夹,所以使用前必须先打包,适合传几MB到几十MB的小文件,大文件会非常慢,没进度条,而且容易卡死会话。

常见下载场景实测对比

不同场景下选哪个方案最省事?给你一个直观的对比:

场景 推荐方案 理由
一次性下载小文件夹(几十MB以内) scp -r 命令最简单,无额外操作
下载大文件夹(1GB以上) tar打包 + rsync 压缩减少传输量,断点续传防止中断
定期做本地备份 rsync 增量同步,资源开销小
服务器之间迁移站点 scp -r 直接拉取 一次完成,避免中转
终端里快速传几十MB的小文件 sz命令 弹窗保存,无需手打路径
图形化操作,含拖拽下载 WinSCP / FinalShell 拖拽即可,适合新手

linux服务器下载文件夹到windows的特别说明

如果你在Windows上操作,最直观的方式是用WinSCP这类图形化SFTP工具。下载整个文件夹的路径是:打开WinSCP,输入服务器IP、用户名和密码连接,右侧是服务器目录,左侧是本地目录,直接选中右侧的文件夹拖拽到左侧即可。整个文件夹会完整复制到本地。

也可以用Windows自带的命令提示符或PowerShell执行scp命令,Win10以上系统自带了这个功能:

scp -r root@IP:/data/www/mysite D:\backup\

注意Windows的路径写法用盘符加反斜杠,D:\backup\这个文件夹需要提前创建好。

报错排查:下载文件夹时常见的三个坑

Permission denied(权限被拒绝)

一般有两种原因:密码输错,或者当前用户没有访问目标文件夹的权限,解决思路是检查目标文件夹的权限设置:

# 在服务器上执行,查看文件夹权限
ls -ld /data/www/mysite

如果当前用户不是属主且没有读权限,要么切到有权限的用户,要么用chmod或chown调整。

No such file or directory(目录不存在)

绝大多数情况是路径写错了,或者拼写大小写有误。Linux路径区分大小写,/data/www和/data/WWW是两个完全不同的路径,先在服务器上用ls确认路径存在,再复制粘贴到scp命令中。

Connection timed out(连接超时)

检查服务器的防火墙规则,确认SSH端口是否对本地IP开放,如果是简米云或酷番云的服务器,还要检查安全组策略。

怎么选:速度优先还是稳定优先

大多数情况下,scp -r和rsync在带宽充足时速度差异不大,真正的瓶颈在网络链路。如果你上传到服务器的带宽本来就只有1MB/s,用什么工具都跑不上更快的速度。

小技巧:服务器上打包时可以用tar -I调用多线程压缩工具pigz,能明显加快压缩速度:

tar --use-compress-program=pigz -czvf mysite.tar.gz /data/www/mysite

对带宽充足但CPU资源紧张的服务器,也可以先打包不压缩,直接传原始包,减少CPU负载。

业内专家指出,实际生产环境中遇到下载文件夹最棘手的问题往往不是命令本身,而是网络不稳定导致的中断和文件夹体积超出预期,建议在动手之前用du -sh看一下文件夹大小,决定是用scp直接传还是打包后传。

Q&A:关于linux服务器下载文件夹的常见疑问

Q1:scp和rsync到底选哪个?

如果是一次性操作、文件夹不大、网络稳定,选scp,命令短,心智负担低,如果是重复备份、文件夹巨大或网络不稳定,选rsync,它支持断点续传和增量同步,传输一半断了可以接着传,scp则只能从头再来。

Q2:目标文件夹包含符号链接或软链接,直接下载会不会出错?

scp -r默认会展开符号链接指向的实际文件内容,导致打包下载的文件超出预期大小,如果希望保留链接本身,建议在服务器上先执行tar -czh,-h参数让tar跟随符号链接打包实际文件,或者用cp -rL复制真实文件后再传输,避免本地出现失效的软链接。

Q3:下载一个几十GB的文件夹,为什么scp命令显示传输完成后本地文件大小对不上?

最常见的原因是服务器上文件夹内的文件在传输过程中发生变化,比如日志文件在持续写入,造成前后不一致,另一个原因是分卷传输时遇到符号链接或稀疏文件,scp会因为文件内容变化而中断复制,导致静默失败,建议传输前先停掉相关应用服务,或者用rsync做两轮同步,第一轮传输文件,第二轮补充差异,确保目录结构完全一致。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/786599.html

赞 (0)
上一篇 2026年11月7日 11:29
下一篇 2026年11月7日 11:34

相关推荐

  • ASP中添加点击事件,如何实现?有哪些方法与技巧?

    在ASP中添加点击事件的核心在于理解其本质:ASP是服务器端技术,无法直接处理发生在用户浏览器中的客户端事件(如按钮点击),实现“点击事件”功能必须结合客户端脚本(如JavaScript/jQuery)与服务器端ASP逻辑进行交互,主要方式有两种:传统的表单提交(PostBack)和现代的异步请求(AJAX……

    2026年2月6日
    13430
  • PLC2启动器连接不到服务器?网络故障排查步骤有哪些

    如果你在同一局域网下用手机和电脑都连不上,可以登录第三方网络监测平台查看目标服务器所在地区的实时连通性报告,若显示大面积故障,等待运营商修复即可,不是你能解决的问题,pllc2启动器连接一直转圈什么原因:专项排查连接一直转圈与直接报错不同,说明TCP链路已建立,但数据交互阶段被阻塞,按优先级排查以下三项:后台进……

    2026年10月20日
    200
  • 贵阳物理机租用哪家速度更快更稳定,怎么选?

    贵阳物理机租用,速度和稳定性综合表现最突出的当属贵州电信机房和本地头部IDC,同时华西南区域的主流云厂商物理机也值得考虑,贵阳物理机租用哪家快?速度的关键决定因素速度不是单靠配置堆出来的,网络延迟、带宽冗余与机房物理位置共同决定了业务响应快不快,在贵阳本地,骨干网接入质量直接拉大不同服务商之间的差距,延迟与丢包……

    2026年7月26日
    1100
  • 服务器进不了U盘启动怎么办?BIOS怎么设置U盘启动?

    服务器进不了U盘启动,核心原因不是U盘坏了,而是服务器默认开启了安全启动(Secure Boot)和快速启动(Fast Boot),加上U盘引导模式(UEFI/Legacy)不匹配,导致系统直接跳过U盘引导,多数情况下,你不需要重装系统,只要进BIOS关闭安全启动、调整引导顺序,并把U盘做成支持UEFI的启动盘……

    2026年9月24日
    100
  • 手机qq邮箱服务器链接错误是什么原因,邮件发送失败怎么解决?

    手机QQ邮箱服务器链接错误,核心原因是客户端与服务器之间的通信被中断或认证失败,多数情况下是网络环境、服务器状态或账号配置三类问题引起的,下文按排查顺序给出完整解决方案,手机QQ邮箱服务器链接错误是怎么回事手机QQ邮箱提示“服务器链接错误”,通俗讲就是手机上的邮箱客户端没法跟腾讯的邮件服务器完成一次“握手”,你……

    2026年10月4日
    200
  • QQ空间服务器数据错误是怎么回事,怎么办

    QQ空间服务器数据错误,先别急着卸载重装,也别信所谓付费恢复,先判断是服务器端还是本地缓存问题,再按“换网络交叉验证、清缓存重建、官方通道反馈”三步走,多数情况十分钟内能恢复正常,QQ空间服务器数据错误到底错在哪QQ空间的说说、相册、留言、日志都存在腾讯云端服务器上,手机和电脑上看到的页面,只是向服务器请求数据……

    程序编程 2026年10月21日
    600
  • Digirdp新加坡、美国VPS测评,20美元/年实测数据与性能表现,Digirdp VPS怎么样,Digirdp VPS测评

    Digirdp 20美元/年美新VPS实测结论:适合预算极低的静态展示与轻量级API调用,但受限于单核性能与高负载下的网络抖动,不建议用于高并发业务或核心数据库托管,Digirdp基础架构与地域节点深度解析Digirdp 作为近年来在细分市场中崭露头角的低价VPS提供商,其核心卖点在于极致的成本控制,针对202……

    2026年5月16日
    6500
  • ASP.NET包含哪些核心组件?框架特性详解

    ASP.NET包含:高效复用页面内容的利器在ASP.NET Web Forms开发中,包含(Inclusion) 是一种核心机制,用于将重复的页面内容(如页眉、页脚、导航菜单、用户控件或外部文件)嵌入到多个页面中,它通过指令或服务器控件实现,主要目标是提升代码复用性、简化维护、确保网站风格统一, ASP.NET……

    2026年2月12日
    13100
  • QQ登录提示服务器返回数据失败怎么办,返回数据失败怎么解决

    遇到“QQ登录提示服务器返回数据失败”,绝大多数情况下是手机网络、DNS解析或QQ客户端缓存出了问题,并非账号被封禁,按顺序排查这几个环节,问题基本都能解决,服务器返回数据失败:先弄懂这个报错到底在说什么这个提示其实没有把话说完整,QQ客户端向腾讯服务器发送登录请求后,返回的数据包让客户端无法识别或校验不通过……

    2026年10月14日
    200
  • 如何查找win7系统服务器地址,win7服务器地址在哪看?

    在Win7系统里找服务器地址,最快的办法是打开命令提示符输入ipconfig,把默认网关记下来,多数局域网环境里网关就是服务器入口, 这个结论能解决大部分日常需求,但服务器地址具体指向谁,还得看你要连的是文件共享、数据库还是域控,下面按场景拆开讲,怎么看win7服务器地址:先分清你要找的是哪种很多朋友卡在第一步……

    程序编程 2026年11月5日
    200

发表回复

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