资讯动态

C盘飘红?从临时文件到Docker/WSL的完整清理指南

发布时间:2026/8/27 10:46:29 来源:尧图企业网站定制
电脑用久了C 盘飘红是 Windows 用户最常见的痛点。多数人第一反应是打开各种“清理大师”结果装完发现系统更卡了。这次我们不谈概念直接给一套可执行的清理流程从系统自带工具、临时文件、更新缓存到开发环境里的 npm、pip、Docker、WSL 缓存再到休眠文件、系统还原点、大文件定位一步步带你把 C 盘空间“抠”出来。这不仅是删几个文件那么简单还要解决“为什么清理完没过多久又满了”的问题。文中所有命令都建议在管理员权限的 PowerShell 或 CMD 中执行涉及改动系统文件的地方会单独标注风险照做之前先看一眼。1. C 盘空间消耗的主要来源与核心思路先搞清楚空间去哪了再动手清理避免误删。以一台安装 Windows 11、日常办公加开发使用的电脑为例C 盘空间主要被以下几类占用占用类别典型位置是否可直接删除说明临时文件%TEMP%、C:\Windows\Temp可以系统运行过程中生成的缓存随时可能被重新创建回收站C:\$Recycle.Bin可以清空后无法找回删除前确认Windows 更新缓存C:\Windows\SoftwareDistribution\Download可以安装完更新后残留的安装包占几个 GB 很常见WinSxS 组件存储C:\Windows\WinSxS禁止手动删除必须用 DISM 工具做组件清理休眠文件C:\hiberfil.sys可以通过关闭休眠释放文件大小约为物理内存的 40% 到 75%页面文件C:\pagefile.sys不建议删除可以迁移到其他盘但会影响系统调试和部分软件运行系统还原点系统卷影副本可以删除后无法回滚系统状态保留最近一个即可开发缓存npm、pip、Docker、WSL 等可以这些缓存通常可以随时重建应用缓存Chrome、微信、浏览器缓存可以微信的聊天文件、浏览器缓存容易占大量空间清理的核心思路是优先处理可以自动重建的缓存其次清理系统更新残留最后再考虑休眠文件、页面文件这类需要权衡的选项。真正的“大块头”往往藏在你没注意到的地方比如 Docker 镜像、WSL 虚拟磁盘和微信数据。2. 明确清理边界哪些能删哪些不能动很多人清理 C 盘翻车是因为把“看起来没用的文件”当成垃圾删了。这里先划定一条安全边界。可以放心清理的内容临时目录%TEMP%、C:\Windows\Temp里的文件系统会按需重建。回收站回收站里的内容已经是被删除的文件清空后释放空间。Windows 更新下载缓存C:\Windows\SoftwareDistribution\Download中的安装包更新完成后不再需要。缩略图缓存C:\Users\用户名\AppData\Local\Microsoft\Windows\Explorer下的 thumbcache 文件删了会自动重建。开发工具缓存npm 缓存、pip 缓存、Yarn 缓存、NuGet 缓存、Maven 缓存这些都可以通过对应命令清理。Docker 悬空镜像和构建缓存docker system prune可以清理不再使用的镜像层和构建缓存。WSL 内部缓存WSL 虚拟磁盘里的包管理器缓存、旧内核文件。不要手动删除的内容C:\Windows目录下的系统文件绝不能用“删除文件”的方式清理。WinSxS目录很多人看到它占了十几个 GB 就想直接删这是错误操作。这个目录是 Windows 组件存储手动删除会导致系统更新失败或组件损坏。C:\Program Files和C:\Program Files (x86)下的程序文件要用卸载程序来移除不能手动删文件夹。C:\Users\用户名\AppData\Roaming下的应用配置和缓存有些缓存删除后会导致软件需要重新登录或重新下载资源除非确认是纯缓存否则不要乱动。pagefile.sys和swapfile.sys直接删除无效需要通过系统设置调整虚拟内存。使用边界提醒清理 C 盘操作虽然不像系统重装那样高风险但误删项目文件、本地代码仓库、未提交的构建产物仍然会造成损失。执行清理前对C:\Users\用户名\Documents、C:\Users\用户名\Desktop、本地 Git 仓库等重要目录做好备份或确认不需要恢复。涉及公司电脑、服务器或他人设备时先确认清理策略和权限不要把公共环境的缓存当成个人电脑内容处理。3. 使用 Windows 系统自带工具进行清理系统自带工具是清理的第一步也是最安全的入口。3.1 磁盘清理工具按下 Win S 搜索“磁盘清理”或者直接在运行框输入cleanmgr选择 C 盘系统会先扫描可清理的项目。如果界面里没有出现“清理系统文件”按钮先点击它工具会重新扫描这次能识别出 Windows 更新清理、系统还原和旧 Windows 安装文件等项目。建议勾选的项目Windows 更新清理临时文件回收站缩略图传递优化文件DirectX 着色器缓存勾选完成后点击确定等待清理完成。3.2 存储感知Windows 10 和 Windows 11 都内置了存储感知。在“设置 - 系统 - 存储”中打开存储感知系统会在磁盘空间不足时自动清理临时文件和回收站内容。也可以手动点击“临时文件”进入扫描逐项清理。这里要留意“下载”文件夹存储感知默认不会清理它避免误删普通下载文件。3.3 按类别查看空间占用在“设置 - 系统 - 存储”页面系统会列出“应用和功能”“临时文件”“其他”等类别。点击“其他”能看到 C 盘根目录下哪些文件夹体积最大帮助定位大型目录。4. Temp 临时文件与 Windows 更新缓存深度清理4.1 清理用户临时目录在“运行”里输入%TEMP%会打开当前用户的临时目录Ctrl A 全选后删除。如果提示文件被占用跳过即可不会影响系统。也可以使用一条命令在管理员 PowerShell 中执行Remove-Item -Path $env:TEMP\* -Recurse -Force -ErrorAction SilentlyContinue Remove-Item -Path C:\Windows\Temp\* -Recurse -Force -ErrorAction SilentlyContinue这条命令会忽略无法删除的占用文件剩下的都会被清掉。4.2 清理 Windows 更新缓存Windows 更新下载的安装包存放在C:\Windows\SoftwareDistribution\Download更新安装完成后这些文件不再需要。直接删除可能遇到文件占用更稳妥的做法是停止 Windows Update 服务后再清理net stop wuauserv net stop bits net stop cryptsvc del /f /q /s C:\Windows\SoftwareDistribution\Download\*.* net start wuauserv net start bits net start cryptsvc执行完成后更新缓存目录会小很多。这个操作不影响 Windows Update 服务本身下次更新时系统会自动重建下载目录。4.3 组件存储清理WinSxS 目录是 C 盘体积大户但原因比较复杂。WinSxS 里包含了系统组件、更新替代版本和硬链接文件很多文件在资源管理器里看似占空间实际通过硬链接被系统重复引用不能简单按文件大小计算。正确的清理方式是使用 DISM# 先分析组件存储占用情况 Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore分析完成后会给出“实际使用的空间”和“可以清理的空间”。如果可清理空间较大再执行Dism.exe /Online /Cleanup-Image /StartComponentCleanup参数说明StartComponentCleanup清理被替代的组件版本。加上/ResetBase会把所有组件视为基线能释放更多空间但清理后无法卸载当前已安装的更新通常只在系统稳定运行一段时间后执行。在 Windows 11 中系统还会自动执行“计划任务”形式的组件清理因此这个操作不是必须频繁执行。建议每半年做一次分析再看是否需要实际清理。5. 开发环境缓存清理npm、pip、Docker、WSL如果电脑是开发者主力机C 盘空间杀手往往不是系统文件而是开发工具缓存和虚拟磁盘。5.1 npm 与 Yarn 缓存npm 的缓存目录通常在C:\Users\用户名\AppData\Local\npm-cache长期安装依赖会积累大量 cache 文件。直接删除目录也可以但更规范的方式是npm cache clean --forceYarn 1.x 的缓存目录在C:\Users\用户名\AppData\Local\Yarn\Cacheyarn cache cleanYarn Berry 版本使用yarn cache clean --all。5.2 pip 缓存Python 项目多的时候pip 缓存也很可观。在C:\Users\用户名\AppData\Local\pip\cache下积累几个 GB 很正常。pip cache purge这个命令会清空 pip 的 HTTP 缓存和 wheel 缓存不影响已安装的 Python 包。5.3 Docker 清理Docker Desktop 的虚拟磁盘文件默认放在 C 盘的用户目录下镜像、容器、卷和构建缓存都会占用虚拟磁盘空间而且虚拟磁盘文件只会增长删除容器内容后磁盘文件不一定自动收缩。先查看占用情况docker system df输出会显示 IMAGES、CONTAINERS、LOCAL VOLUMES、BUILD CACHE 各自的占用。清理命令# 清理悬空镜像、停止的容器、无用网络、构建缓存 docker system prune # 更彻底包含所有未被容器使用的镜像、卷缓存和构建缓存 docker system prune -a --volumes注意docker system prune -a --volumes会把未使用的镜像和卷都删掉如果包含本地数据库容器且未挂载外部存储卷数据会丢失执行前先确认容器是否挂载了宿主机目录。清理完 Docker 内部空间后还需要在 Docker Desktop 设置中检查虚拟磁盘大小。如果虚拟磁盘文件依然很大可以在“Settings - Resources - Disk”里调整磁盘镜像大小或者通过docker system df确认内部空间已释放后选择重置虚拟磁盘这会删除所有镜像和容器适合彻底整理。5.4 WSL 虚拟磁盘WSL 的发行版默认安装在C:\Users\用户名\AppData\Local\Packages\...\LocalState\ext4.vhdx这个文件会随着 WSL 内部的包安装和编译逐渐膨胀。即使删掉 WSL 内部的文件vhdx 文件也不一定自动回收空间。可以在 WSL 内部先清理包管理缓存sudo apt clean sudo apt autoremove然后回到 Windows 的 PowerShell 执行虚拟磁盘压缩wsl --shutdown diskpart在 diskpart 中执行select vdisk fileC:\Users\用户名\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx attach vdisk readonly compact vdisk detach vdisk exit注意把 vhdx 路径替换成自己的 WSL 发行版路径。执行完成后C 盘会释放大量空间。5.5 node_modules 与构建目录项目目录下的node_modules体积通常很大但不应该直接删除整个项目里的 node_modules。正确做法是清理不再使用的旧项目或者把当前不活跃的项目移到其他磁盘。如果某个项目暂时不需要依赖可以先删除 node_modules需要时用npm install重新安装。前端项目的dist、build、.next目录后端项目的target、__pycache__目录都是构建产物可以重新生成确认不再需要后可以清理。6. 休眠文件、页面文件与系统还原点这三项是 C 盘里隐蔽的“大文件”平时在资源管理器里默认不可见但实际占用很大。6.1 休眠文件休眠文件C:\hiberfil.sys的大小通常和物理内存有关。如果电脑物理内存是 16GB休眠文件可能占到 6GB 以上。对于使用台式机或不依赖“休眠”功能的用户可以关闭:powercfg /h off执行后hiberfil.sys会被直接删除立即释放几个 GB。如果之后需要使用“休眠”功能再执行powercfg /h on重新开启。注意关闭休眠后笔记本合盖进入“休眠”的能力会失效通常使用睡眠代替。如果要保持“快速启动”功能需要保留休眠文件这部分空间省不掉。6.2 页面文件pagefile.sys是虚拟内存文件不建议删除。但可以把它迁移到非 C 盘释放 C 盘空间。设置路径在“系统属性 - 高级 - 性能设置 - 高级 - 虚拟内存更改”。操作步骤取消勾选“自动管理所有驱动器的分页文件大小”。选择 C 盘设置为“无分页文件”点击“设置”。选择其他盘符如 D 盘设置为“系统管理的大小”点击“设置”。确认后重启电脑。这样 C 盘根目录的 pagefile.sys 会消失空间得到释放。迁移后如果蓝屏调试需要转储文件记得把转储文件目录也调整到对应盘符。6.3 系统还原点系统还原点也占用磁盘空间。在“系统属性 - 系统保护”中可以看到 C 盘的还原点设置和已用空间。点击“配置”可以调整最大使用量或者点击“删除”按钮移除所有还原点。删除所有还原点会失去系统回滚能力如果系统运行稳定可以考虑只保留最近一个还原点。需要保留还原功能但减少占用的把最大使用量调整到 5% 到 10% 即可。7. 大文件、重复文件与旧目录的定位与迁移清理完上面这些固定位置后C 盘空间通常会有明显改善。但如果你想再多挤出几个 GB就需要自己定位大文件和重复文件。7.1 使用 PowerShell 扫描大文件在管理员 PowerShell 中执行以下命令扫描 C 盘用户目录下所有超过 1GB 的文件并按大小排序Get-ChildItem -Path C:\Users\你的用户名 -Recurse -File -ErrorAction SilentlyContinue | Where-Object { $_.Length -gt 1GB } | Sort-Object -Property Length -Descending | Select-Object -First 50 FullName, {NameSizeGB; Expression{[math]::Round($_.Length / 1GB, 2)}} | Format-Table -AutoSize扫描整个 C 盘也可以用Get-ChildItem -Path C:\ -Recurse -File -ErrorAction SilentlyContinue | Where-Object { $_.Length -gt 1GB } | Sort-Object -Property Length -Descending | Select-Object -First 50 FullName, {NameSizeGB; Expression{[math]::Round($_.Length / 1GB, 2)}} | Export-Csv -Path D:\big_files.csv -NoTypeInformation把结果导出到 CSV方便逐个排查。ErrorAction SilentlyContinue的目的是跳过无权限访问的目录扫描过程会跳过系统受保护的目录。7.2 对比目录占用如果不想在 PowerShell 里折腾可以使用图形化工具。常见的磁盘空间分析工具有 TreeSize Free、WizTree、SpaceSniffer。这类工具会以图形化的方式显示哪些目录占用最大能直接帮助定位可疑文件。补充说明在实际项目中借用这些工具时先保证来源可信从官方网站下载不要使用第三方修改版。7.3 迁移用户目录很多软件默认把数据放在C:\Users\用户名\Documents、C:\Users\用户名\Downloads、C:\Users\用户名\Desktop这些目录很容易积累大量文件。对于不常用的文件将整个目录迁移到其他盘符然后通过“位置”设置重新指向。操作方式右键点击“下载”文件夹选择“属性 - 位置”把路径改为D:\Downloads点击“移动”。系统会把现有文件迁移到新位置之后新下载的文件直接写入 D 盘。同样的方法适用于“桌面”“文档”“图片”“视频”。迁移之后大多数软件的默认保存路径会继续正常工作因为系统已经通过虚拟路径做了重定向。7.4 微信、QQ 与其他应用的聊天记录和缓存微信、QQ 这类软件的数据默认存储在用户目录的 Documents 下具体为微信C:\Users\用户名\Documents\WeChat Files微信新版本C:\Users\用户名\AppData\Roaming\Tencent\WeChat或C:\Users\用户名\Documents\WeChat Files取决于版本QQC:\Users\用户名\Documents\Tencent Files包含聊天图片、视频、文件接收记录占几个 GB 到几十 GB 都很正常。在微信设置中把文件存储位置改到其他盘符然后把原来的文件迁移过去就能释放大量空间。应用自身的缓存文件如浏览器缓存、Electron 应用缓存可以通过应用设置或工具清理不建议直接删除 AppData 下的整个目录以免引发应用异常。8. 常见问题与排查方法清理 C 盘过程中经常遇到一些问题这里整理了一张排查表。问题现象可能原因排查方式解决方案清理后 C 盘空间没有明显变化清理的内容本身就不大大文件还没定位到使用磁盘分析工具看目录占比重点检查微信、Docker、WSL、休眠文件删除临时文件提示“文件正在使用”应用程序或系统进程占用了部分临时文件在任务管理器中确认占用进程跳过占用文件重启后再清理del命令无法删除 SoftwareDistribution 下的文件Windows Update 服务正在运行查看服务状态先执行net stop wuauserv停止服务WinSxS 目录很大清理后仍然很大分析结果显示“实际使用空间”本身就高使用 DISM 分析执行组件清理但不要手动删除目录Docker 清理后 vhdx 文件仍然占用大量空间虚拟磁盘文件不会自动收缩Docker Desktop 中查看磁盘镜像设置在 Docker Desktop 中调整磁盘大小或执行虚拟磁盘压缩WSL 内部清理后 ext4.vhdx 没有变小vhdx 文件需要手动 compact检查 LocalState 目录的 vhdx 大小按第 5.4 节 diskpart 压缩流程执行清理后某些软件无法正常打开误删了 AppData 下的关键配置或缓存查看软件日志或重新安装验证恢复系统还原点或重新安装对应软件C 盘空间依然紧张没有大文件可删部分文件在系统目录中常规工具扫描不到使用管理员权限分析或检查系统保护设置压缩页面文件、关闭休眠、调整系统还原点空间上限8.1 清理后系统自动还原如果清理过程中误删了重要文件立即停止继续清理。优先检查回收站然后检查系统还原点。只要还保留还原点可以通过“系统属性 - 系统保护 - 系统还原”回到清理前的状态。8.2 清理后 C 盘又迅速变满这种情况通常不是缓存问题而是有程序在持续写入。排查思路是先看是不是 Windows 更新在后台下载再检查是否有 Docker、WSL、虚拟机磁盘在持续增长最后用资源监视器观察磁盘写入进程确认是哪个应用在短期内产生大量写入。9. 日常维护与自动化建议C 盘清理不应该是一次性工作更合适的方式是把常规清理固化到日常流程里并定期自动执行。9.1 定期执行系统盘清理脚本可以把临时文件清理、更新缓存清理合并成一个 PowerShell 脚本在管理员权限下定时执行# 清理用户临时文件与系统临时文件 Remove-Item -Path $env:TEMP\* -Recurse -Force -ErrorAction SilentlyContinue Remove-Item -Path C:\Windows\Temp\* -Recurse -Force -ErrorAction SilentlyContinue # 清理 Windows 更新下载缓存前先停止服务 Stop-Service -Name wuauserv -Force -ErrorAction SilentlyContinue Stop-Service -Name bits -Force -ErrorAction SilentlyContinue Remove-Item -Path C:\Windows\SoftwareDistribution\Download\* -Recurse -Force -ErrorAction SilentlyContinue Start-Service -Name wuauserv Start-Service -Name bits # 跳过回收站清理回收站中的内容需要用户确认 # 仅输出当前系统盘剩余空间 Get-PSDrive C | Select-Object {NameFreeGB; Expression{[math]::Round($_.Free/1GB,2)}}把脚本保存为.ps1文件在“任务计划程序”里创建一个每天或每周执行的基础任务使用管理员权限运行。任务计划程序执行 PowerShell 脚本时注意执行策略限制Restricted策略会因为无法运行脚本导致任务失败可以用-ExecutionPolicy Bypass作为启动参数或者通过Set-ExecutionPolicy RemoteSigned调整本机策略。下面是一个在 CMD 中创建计划任务的示例每天凌晨 3 点执行schtasks /Create /TN C盘临时清理 /TR powershell.exe -NoProfile -ExecutionPolicy Bypass -File D:\Scripts\clean-cache.ps1 /SC DAILY /ST 03:00 /RU SYSTEM/RU SYSTEM表示以系统权限运行。要注意脚本里不要包含回收站清空、休眠文件关闭、页面文件调整这类交互性强的操作这些只适合手动执行。9.2 Docker 与 WSL 的定期清理Docker 的构建缓存特别容易堆积可以定期执行docker system prune -f-f参数不做交互确认。WSL 的apt clean可以放在 WSL 内的定时任务中或者每个月手动执行一次。正常节奏下Windows 更新缓存和临时文件可以每周清理一次Docker 和 WSL 可以按月清理。9.3 目录组织和迁移习惯新项目、下载文件、临时工作文件尽量不要放在 C 盘桌面。在 D 盘建立一个完整的目录结构例如D:\Projects D:\Downloads D:\Documents D:\Software把系统默认的下载目录、文档目录、桌面目录都重定向到 D 盘后C 盘的增长速度会明显放缓。这里有一个细节需要提醒迁移目录后一些旧程序如果硬编码了默认路径可能无法保存文件到原位置具体情况要看软件的适配程度。9.4 关注“幽灵文件”部分软件会创建巨大的隐藏文件比如沙盒软件的磁盘镜像虚拟机磁盘文件VMware、VirtualBoxAndroid 模拟器的用户数据镜像加密容器文件如 VeraCrypt 容器数据库数据文件这些文件在磁盘分析工具里显示为普通大文件但它们不属于缓存删除会导致软件数据丢失。遇到这类文件时确认用途后再处理能迁移到其他盘就迁移不能迁移的考虑通过软件自身的设置调整存储位置。10. 总结与下一步C 盘清理这件事按优先级排下来应该是先用系统自带磁盘清理和存储感知处理临时文件再清理 Windows 更新缓存接着排查开发环境缓存和 Docker/WSL 虚拟磁盘最后处理休眠文件、页面文件和系统还原点。这些操作完成后再用大文件扫描工具排查剩余体积。最先应该验证的是磁盘清理工具和临时目录清理这两步风险最低、见效最快。最容易踩的坑是手动删除 WinSxS 目录和误删 AppData 下的软件数据这两个位置不管看起来多大都别用“删除”的方式处理。后续可以继续扩展的方向把第 9.1 节的清理脚本接入任务计划程序定期执行给 C 盘剩余空间设置一个阈值提醒把新项目、下载文件、文档目录全部迁移到非系统盘从源头上减少 C 盘写入量。如果清理完 C 盘后空间仍然不足下一步要考虑的是磁盘扩容或者卸载不常用的大型软件这时候再做进一步判断。建议收藏备用方便下次 C 盘再飘红的时候直接照着流程操作。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价