修复下载资源包是一门面向已掌握基本脚本编写的学习者的 Bash 实践项目课程。你将帮助活动组织者找回缺失或损坏的资源,同时保留正确文件和个人笔记。成果是一套可实际使用的本地 PDF 与文本资料,以及可再次用于其他受支持资源包的脚本。
两个引导实验先根据独立可信的 SHA256 清单构建检查表,再依据检查结果通过 HTTP 按需修复。一个独立挑战会更换资源集合及缺失或损坏的位置。每个实验都提供各自的文件和本地来源,不依赖之前实验的文件。
你将学到什么
完成本课程后,你将能够:
- 将实际文件字节与独立基准比较,把每个必需资源分为匹配、缺失或不匹配;
- 保留含空格的完整文件名,并识别合法的空资源;
- 使用 curl 和正确编码的请求参数,只下载需要修复的资源;
- 在替换目标前校验每个临时候选文件,并且只清理自己的临时文件;
- 保留正确文件与无关笔记的字节、权限模式、所有者和修改时间;
- 在不发起下载请求的情况下重复运行已完成的修复,并打开、下载真实的本地 PDF 与文本资料。
本课程适合谁
本课程适合希望自动判断哪些文件需要恢复、而不是重新下载全部文件的 Bash 学习者。
前置要求: 完成 Shell for Beginners,或具备同等的终端路径、脚本参数、条件与循环使用经验。引导实验会讲解本项目使用的 SHA256、文件名解析、命令退出状态、curl、临时候选文件和清理 trap。无需学习 PowerShell,也不要求先完成音频试听片段项目。
学习环境: LabEx 提供浏览器中的 Linux 环境,准备好所需工具、原创合成资源、Workspace 终端和 Download Desk 页面。下载来源是受控的本地 HTTP 服务。无需外部账号或本地软件安装。界面标签和命令输出保留英文。
常见问题
校验和匹配能证明文件由谁发布吗?
不能。你将文件字节与独立提供、并假定可信的清单比较。摘要可以发现与该基准不一致的内容,但不会认证发布者身份。不要根据损坏文件重建基准。
下载失败时会怎样?
HTTP 拒绝、传输中断以及 HTTP 200 返回的错误内容,都不能替换目标文件。发布按文件逐项进行:后面的资源失败时,前面已经校验通过的修复可以保留。这不是整个资源包的事务,也不保证崩溃后的恢复。
第二次运行会重新下载正确文件吗?
不会。匹配的文件会被保留,包括合法的空资源。完整资源包的第二次运行不发起任何下载请求,并保留资源包和个人笔记。

