1. 一次误删事故复盘:为什么传统清理思路会翻车
先说个我自己的真实经历。上个月帮朋友清理一台老笔记本,512G的固态已经飘红了,只剩不到10G可用空间。按我以前的习惯,直接下载个清理工具,一键扫描,“系统垃圾”一栏赫然显示37.6G,当时想都没想点了清理。结果清完重启,系统倒是能进,但某国产办公软件的本地缓存全没了,里面有一个他老婆正在做的重要项目的临时自动备份。虽然不是不可恢复,但那种“心里咯噔一下”的感觉,相信大多数老折腾都体会过。
问题出在哪?不是清理工具不行,而是“系统垃圾”这四个字本身就是一个被严重泛化的概念。在传统清理工具的眼里,判定垃圾的逻辑非常粗暴:类型匹配,而不是场景判断。扩展名是.tmp就删,缓存目录下的文件就删,注册表里带Temp字段的键值就删。这套规则跑了十几年,确实解决了不少磁盘空间问题,但也带来两个致命的副作用:一是误删有用文件,二是“垃圾”越清越多——很多软件检测到缓存被删,下次启动会以更大的体积重新生成一份。
这也是为什么现在很多维护老电脑的人都学聪明了:宁可手动翻,也不肯用一键清理。但手动翻的问题是效率太低,一个“C:\Users\用户名\AppData\Local\Temp”文件夹里堆积的文件,看似全是垃圾,实际上里面可能混着正在被某个服务占用的文件、某个 installer 的断点续传临时数据,甚至是你正在用的某个软件的人体工学配置缓存。单靠肉眼,根本不可能在一两万个文件里分辨出哪些能删、哪些不能删。
于是问题就变成了:有没有一种办法,既能保持“手动清理”那种对每个文件都过一遍脑子的精准度,又能兼顾“自动清理”的高效率?我的答案是:把识别决策交给 AI,把最终执行权留在自己手里。这听起来像句废话,但当你真正按这个思路把流程跑通之后,会发现它跟市面上所有“一键清理”工具的解题思路都完全不同。
这篇文章我会完整拆解我是怎么用 AI(主要是大语言模型)来辅助做精准系统垃圾清理的。不涉及任何需要额外安装全家桶的工具,只用最基础的系统命令行、Python脚本和对话式AI,并且会把我踩过的坑、总结的提示词模板、以及一套“删除前强制隔离”的安全机制全都放出来。适合那些不想用第三方清理软件、又有点动手能力的普通用户参考。
2. 系统垃圾的四种类型:先搞清你面对的是什么
在让 AI 介入之前,你自己必须先对“系统垃圾”建立一个正确的认知框架。因为 AI 不是神,它的判断是基于你给它的信息和规则。你给它一个模糊的“看看哪些是垃圾”,它就还你一个模糊的结果;你给它一套清晰的分类逻辑,它就能基于这个逻辑去精准推理。所以这一步是地基,别跳过。
2.1 可安全清理的确定性垃圾
这类文件的特点是:删除后不影响任何系统功能,也不会导致软件行为异常。最典型的就是 Windows 更新卸载残留。每次系统大版本更新后,C:\Windows\SoftwareDistribution\Download 里会残留一批安装包,还有 WinSxS 目录里那些已经被新版本替代的旧组件。这些属于标准的“过期货”,删掉之后基本不会引起什么问题。
其次是临时文件。这里要区分一下系统临时目录和用户临时目录。C:\Windows\Temp 是系统级临时目录,大多数情况下可以直接清空;而 C:\Users\用户名\AppData\Local\Temp 是用户级临时目录,情况稍复杂一些,因为有些软件(特别是安装包工具)会在里面对比文件时间戳来决定是否续传,但整体来讲这里面的东西 90% 以上都可以删。
还有各类日志文件。Windows 下的 C:\Windows\Logs\CBS 目录,里面是组件服务日志,能积累到几个G;C:\ProgramData\Microsoft\Windows\WER\ReportArchive 是错误报告归档。这类文件的特点是只增不减,价值极低,清理风险几乎为零。
2.2 有条件清理的缓存类文件
这类文件最容易被误杀,也是“一键清理”工具最喜欢背锅的地方。它们的特点是:删了不会出大事,但删完会让你在下次打开某个软件时明显感到“慢了一拍”。
典型代表是缩略图缓存(Windows 的 thumbcache_*.db 系列),删掉后资源管理器重新进入图片文件夹时需要重新生成,如果你的图片目录有几万个文件,重新生成的过程会让文件夹卡顿好几分钟。还有各类应用程序自己的缓存目录,比如浏览器的 Cache、某些即时通讯软件的表情包缓存。这些文件的共同规律是:软件有能力自动重建,但重建过程有成本。
对于这一类,我个人的策略是:保留最近 7 天内有访问记录的文件,只清理超过 30 天的旧缓存。但这个策略靠人工很难执行——你总不能自己在资源管理器里按时间排序挨个看。这就轮到 AI 发挥作用了,它可以批量读取文件元数据,按最后访问时间、文件大小、所属软件三个维度综合判断,直接输出一份“建议保留”和“建议清理”的清单。
2.3 高风险的双用途文件
这是“盲删事故”的重灾区。很多文件表面看是垃圾,实际上承担着双重身份。我遇到过一个典型案例:某个设计软件的字体缓存目录,从名字上看(FontCache)谁都以为删了无妨,结果那个软件重新扫描字体的过程长达二十分钟,而且期间 CPU 占用率 100%,直接导致半小时无法工作。
更典型的是各软件的自动保存与备份文件。比如 Word 的 .wbk 文件、PS 的 .psb 备份文件、以及一些代码编辑器的本地历史记录。这些文件名里没有明显的“backup”或“bak”标识的话,很容易被误判成临时文件。但它们的真实价值是:只有断电或崩溃时才会体现出来,平时你根本想不起它们的存在,直到某一天软件崩溃、发现自己三小时的工作成果没保存时才会追悔莫及。
还有一个特别容易被忽略的:日志文件也分“可删”和“不可删”。很多软件在启动时会读取自己的日志末尾来判断上次是否异常退出;如果你把整个日志目录连根删掉,软件会认为“上次是干净退出”,从而跳过某些自修复流程。这种情况删了反而会让潜在问题被掩盖。
2.4 不应该由用户清理的系统保护文件
这类文件要格外小心,主要包括:系统还原点(System Volume Information)、休眠文件(hiberfil.sys)、页面文件(pagefile.sys)、以及各类驱动备份目录下的文件。
这些文件占用的空间可能非常大——休眠文件有时候能占到内存大小的 75% 以上,32G 内存的机器就是 24G。但它们的存在是有系统级意义的:休眠文件决定了你能不能一键唤醒,页面文件决定了内存溢出时系统是否还能保持稳定。想“清理”它们的正确方式不是删除,而是通过系统设置关闭休眠功能、调整虚拟内存大小,或者定期清空系统还原点的保留配额。
很多清理工具会把这几个文件列在“可清理的垃圾”里诱导你点击。一旦误操作,轻则系统变得不稳定,重则直接无法进入桌面环境。
为了方便后续的 AI 判断,我把这四类信息整理成了一个“垃圾文件判定表”,在后面让 AI 分析时直接作为规则喂给它:
| 类型 | 代表文件/目录 | 危险等级 | 清理建议 |
|---|---|---|---|
| 确定性垃圾 | Windows更新残留、旧日志、WER报告 | 低 | 可以直接清理 |
| 条件性缓存 | 缩略图缓存、浏览器Cache、软件Cache | 中 | 按时间+访问频率筛选 |
| 双用途文件 | 自动备份、崩溃恢复文件、续传临时文件 | 高 | 必须单独判断,不可批量删 |
| 系统保护文件 | hiberfil.sys、pagefile.sys、系统还原点 | 极高 | 走系统设置关功能,绝不删文件 |
这张表本身就是你给 AI 的基础规则库。它不需要背下来,但你需要在对话中把它传过去。
3. AI 精准识别的核心逻辑:从“一刀切”到“概率决策”
很多人对“AI 清理垃圾”的理解还停留在“对着 AI 说一句帮我清理垃圾,AI 就在后台咔咔一顿删”的阶段。这是对 AI 能力边界的误解。目前主流的对话式 AI 并不能直接操作你的系统文件,它的价值在于帮你做出判断,而不是替你执行。
3.1 AI 相比传统清理工具的三个本质差异
传统清理工具的判定模型是“规则树”:先按文件扩展名过滤,再按目录路径匹配,然后按文件时间戳排序。这套模型的优点是执行效率高、过程可复现,但缺点是缺乏上下文理解能力。它不知道你安装过哪些软件,不知道哪些软件正处于异常状态需要靠日志排查,更不知道你今天早上刚下载的那个安装包虽然扩展名是 .cab,实际上是你下午要用的驱动文件。
AI 的判断模型是“概率决策”:它会把一个文件的所有特征(路径、名称、大小、时间戳、所属软件签名、同目录下其他文件的关联性)综合起来,评估“这个文件是垃圾”的概率是多少。更重要的是,它可以基于你补充的信息动态修正判断。
比如你告诉它“我用了某国产输入法,它的缓存目录在 Program Files 下,而不是 AppData 下”,它就能立即调整后续的判断逻辑。这种交互式修正能力,是传统清理工具完全不具备的。
3.2 特征工程:AI 靠什么判断一个文件该不该删
要让 AI 做出靠谱判断,你得先把文件的信息转成它看得懂的结构化数据。核心特征大致有以下几个维度:
路径特征。这是最重要的维度。路径字符串里包含的信息量极大:AppData\Local\Temp 基本等于临时文件,AppData\Roaming\某软件\Cache 是某软件的用户态缓存,Windows\SoftwareDistribution\Download 是更新缓存,Program Files\某软件\logs 是程序日志。AI 对路径的解析能力远强于传统规则——它甚至能识别出拼写变体(比如 “temp”、“tmp”、“Temp”、“TEMP” 在不同软件里的不同习惯)。
文件特征。包括扩展名、命名模式、文件大小分布。这里有个小技巧:把文件名列表一次性传给 AI 时,建议按目录分组并在每组前加一行“该目录属于哪个软件/系统组件”的上下文提示,AI 的准确率会明显提升。
时间特征。包括创建时间、修改时间、最后访问时间。但对临时文件来说,Windows 的“最后访问时间”默认是关闭的(出于性能考虑),所以实际操作中主要看创建和修改时间。一个两年前创建的临时文件,基本可以判定为死垃圾。
3.3 让 AI 输出“判定报告”而不是“删除指令”
这里要强调一个我反复测试后得出的最佳实践:永远不要让 AI 直接给你删除命令,而是让它给你判定报告。原因很简单,AI 的能力边界在于,它可能会“一本正经地胡说八道”——给出一个路径格式完全正确、但实际并不存在于你系统里的文件路径。如果你把这段输出直接复制到命令行执行,结果就是“系统找不到指定的路径”这种无害报错;但如果你是让 AI 生成一个递归删除脚本,中间任何一个路径拼接错误,都可能把删除动作送到错误的地方。
正确的做法是这样一条链路:
- 自己扫描真实文件,生成清单
- 把清单喂给 AI,让它逐项判定风险等级
- AI 输出“建议删除/建议保留/需人工确认”三类结果
- 你把“建议删除”那份清单拿过来,再做一次路径存在性校验
- 校验通过的,先移动到隔离目录,而不是直接删除
- 确认后续没出问题,再从隔离目录彻底删除
后面我会给出一整套可直接复用的提示词和脚本,你照着抄就行。
4. 实操链路:让 AI 参与磁盘分析的完整流程
前面铺垫了这么多,现在进入正题。我用的这套方法不需要安装任何第三方清理软件,只需要一个能上网的浏览器加一个能跑 Python 脚本的终端(Windows 自带的 PowerShell 也行)。
4.1 准备阶段:安装 Python 与基础依赖
你不需要是程序员。只需要装一个 Python 3.10 以上的环境,装的时候记得勾选 “Add Python to PATH”。然后打开命令提示符,执行以下两条命令:
pip install send2trash pip install tabulate这里简单解释一下为什么要装这两个库。send2trash用于把文件送到回收站而不是永久删除——这是后面“隔离机制”的基础。tabulate用于把扫描结果整理成表格,方便 AI 阅读和判断。如果你用的是 Linux/macOS 系统,可以换成trash-put命令和自带的格式化工具,但下面所有案例我都会以 Windows 为例来讲。
4.2 扫描阶段:生成一份带“上下文”的文件清单
AI 判断精准度的关键,是给它看的清单里有没有足够的上下文。之前我自己试过,只是简单地把一长串路径堆给它,它给出的判断精准率感人——因为“C:\Program Files\xxx\cache”和“C:\Users\me\AppData\Local\xxx\Cache”在 AI 看来是两码事,而你如果不告诉它每一行分别属于哪个软件,它就只能在路径上猜,很容易乱。
所以我写了一个 Python 脚本,扫描指定目录时会把文件按“根目录分组”输出,并自动附带上目录的归属说明。为了让你能直接上手,我把核心代码贴在下面,你保存为scan_system_garbage.py直接运行:
import os import time from tabulate import tabulate TARGET_DIRS = [ r"C:\Windows\Temp", r"C:\Users\%USERNAME%\AppData\Local\Temp", r"C:\Windows\SoftwareDistribution\Download", r"C:\ProgramData\Microsoft\Windows\WER\ReportArchive", r"C:\Users\%USERNAME%\AppData\Local\Microsoft\Windows\Explorer", ] def scan_dir(path): result = [] for root, dirs, files in os.walk(path): # 跳过系统链接目录,防止循环遍历 dirs[:] = [d for d in dirs if not os.path.islink(os.path.join(root, d))] for f in files: full_path = os.path.join(root, f) try: stat = os.stat(full_path) result.append({ "path": full_path, "size_mb": round(stat.st_size / 1024 / 1024, 2), "mtime": time.strftime("%Y-%m-%d", time.localtime(stat.st_mtime)) }) except OSError: # 权限受限或文件被占用时跳过 continue return result if __name__ == "__main__": all_data = [] for d in TARGET_DIRS: real_path = os.path.expandvars(d) # 展开 %USERNAME% if not os.path.exists(real_path): continue data = scan_dir(real_path) # 按修改时间排序,最新的排前面 data.sort(key=lambda x: x["mtime"], reverse=True) header = f"目录: {real_path} (文件数: {len(data)})" print(header) print(tabulate(data, headers="keys", tablefmt="github")) print() all_data.extend(data) total_mb = sum(item["size_mb"] for item in all_data) print(f"汇总: 共扫描到 {len(all_data)} 个文件,总大小 {round(total_mb, 2)} MB")运行方式很简单:
python scan_system_garbage.py默认情况下会扫描 5 个最有代表性的垃圾热点目录。如果你想加入更多目录,直接在TARGET_DIRS列表里追加就行。
脚本输出的格式是 Markdown 表格,每行包含路径、大小、修改日期。这个格式对 AI 来说非常友好,它不需要去解析逗号分隔的 CSV,直接就能读懂上下文。
4.3 识别阶段:用结构化提示词问 AI
这是全篇最核心的环节。我测试了二十多组不同的提示词写法,最终沉淀下来一套稳定好用的模板。它不是让 AI 直接说“开始清理”,而是要求 AI 扮演一个“系统垃圾审计员”,逐行分析清单里的每个文件,给出风险等级与依据。
直接复制下面这段提示词,把扫描结果粘贴进去:
你是资深 Windows 系统维护工程师,请对下面这批文件做“垃圾判定”分析。判定规则如下:
- “安全删除”:属于系统临时文件、更新缓存、崩溃报告归档,删除后不影响任何软件功能;
- “建议保留”:可能是软件正在使用的缓存、自动备份、续传文件、双用途文件;
- “需人工确认”:无法根据路径判断,或疑似与其他软件关联。
请按目录分组输出结果,每组用表格展示:文件路径、大小、风险判定、判定依据。最后单独输出一行“建议可释放空间总量”。
以下是文件清单:
然后把上一步的扫描输出复制进去。你会发现,AI 的表现明显比“直接问它怎么清理”要出色得多。它能根据目录名识别出“C:\Windows\SoftwareDistribution\Download 里的 .cab 文件是更新安装包,已下载未安装的可清理”,也能根据文件的修改时间判断“这个临时文件是三天前刚生成的,可能是某个软件的断点续传缓存,建议保留”。
4.4 一个真实案例展示完整的判断过程
为了让你对效果有直观概念,我拿自己电脑上的 C:\Users\Administrator\AppData\Local\Temp 目录做了个实测。扫描出 418 个文件,总共 1.8G,粘贴给 AI 后,它的判定结果大致是这样的:
- “安全删除”类:386 个,约 1.6G。主要是各类安装包的临时解压文件,以及浏览器渲染进程残留的零字节文件。
- “建议保留”类:7 个,约 120M。其中 5 个是某截图软件当天生成的待处理图片缓存,2 个是代码编辑器的会话恢复文件。
- “需人工确认”类:25 个,约 80M。这批文件 AI 给出的理由是:文件名没有明确的扩展名规律,且位于某个第三方字体工具的子目录下,AI 无法确认该工具是否依赖这些文件。
这个结果说明了关键问题:AI 推荐的“安全删除”目录如果换成传统清理工具,里面那 7 个“建议保留”的文件大概率会被直接带走。这就是精准度和莽撞之间的差别。
5. 清理脚本生成与双重审计:AI 提方案,人拍板
AI 输出第一版判定结果之后,还远没到清理那一步。因为这个结果只是基于通用常识的初筛,你要做的是在这个文件上叠加自己对电脑使用习惯的了解,形成第二重判断。这一步我称之为“人工复核层”。
5.1 把 AI 清单转为可执行的清理隔离脚本
当 AI 给出了“安全删除”名单,你需要把它转成一份“隔离清单”。在这个阶段,我推荐写一个通用的移动脚本,把文件从原目录移动到系统盘外的另一个目录,而不是直接删除。这样做的目的是留后路。
下面这段脚本,你只需要把文件路径列表按行粘贴到一个to_clean.txt里,运行后:
- 创建
D:\_TrashCan\作为隔离目录 - 遍历
to_clean.txt里的每一行,检查文件是否存在 - 如果存在,移动到隔离目录,并在日志里记录原来的完整路径
- 如果不存在,把这一行输出到
missing.txt,说明文件已经不在,可能是被其他进程清理了
import os import shutil import datetime ISOLATE_DIR = r"D:\_TrashCan" TARGET_LIST = r"to_clean.txt" MISSING_LOG = r"missing.txt" MOVED_LOG = r"moved_log.txt" os.makedirs(ISOLATE_DIR, exist_ok=True) with open(TARGET_LIST, "r", encoding="utf-8") as f: paths = [line.strip() for line in f if line.strip()] moved = [] missing = [] for p in paths: if os.path.exists(p): filename = os.path.basename(p) dest = os.path.join(ISOLATE_DIR, filename) # 重名处理:加时间戳前缀 if os.path.exists(dest): name, ext = os.path.splitext(filename) dest = os.path.join(ISOLATE_DIR, f"{name}_{datetime.datetime.now().strftime('%Y%m%d%H%M%S')}{ext}") try: shutil.move(p, dest) moved.append(f"{p} -> {dest}") except Exception as e: print(f"[失败] {p}: {e}") else: missing.append(p) with open(MOVED_LOG, "w", encoding="utf-8") as f: f.write("\n".join(moved)) with open(MISSING_LOG, "w", encoding="utf-8") as f: f.write("\n".join(missing)) print(f"成功移动: {len(moved)} 个文件") print(f"文件不存在: {len(missing)} 个(已记录)")跑完这个脚本之后,建议重启一次电脑,正常使用两三天。如果期间没发现任何软件报错、文件打不开、功能缺失,再进入彻底删除阶段——清空D:\_TrashCan\目录。如果发现问题,可以根据moved_log.txt里的记录把对应文件原路移回去。
5.2 双重审计中的第二重:人的习惯与场景知识
这一步虽然叫“审计”,但其实不需要什么技术含量,只需要你回忆几个问题:
- 最近一次手动清理缓存是什么时候?如果这周刚清过,那今天扫出来的“缓存”大概率是软件重新生成的,可以清理。
- 有没有某些软件存在“删缓存后首次启动特别慢”的坏习惯?如果有,在清单里把对应软件的所有缓存文件标记为保留。
- 有没有正在下载中的大型任务?下载管理器通常会在临时目录里放分片文件,这些文件千万不能动。
把这些经验反馈给 AI 的方式是在前面那套提示词后面追加一句话:
补充信息:我这台电脑最近没有正在下载的任务;我常用的软件是 Chrome 浏览器、某网盘客户端和一款剪辑软件,其中剪辑软件的媒体缓存对我很重要,凡是包含该软件路径的文件一律不要建议删除。
追加后可以让 AI 重新评估一次,你会发现它给出的“建议保留”名单会明显变长——这正是“人机协同”应该有的效果:AI 提供通用推理基础,你补充个性化上下文,双方各取所长。
5.3 为清理脚本注入“风险预算”机制
还有一个我踩坑后设计出来的细节:给脚本设置一个“单次最大清理量”。比如你设定单次最多移动 2G 或 500 个文件,脚本会在达到阈值后自动停止。原因很简单:第一批清理出问题时,波及面越小越好。宁可多跑几轮,也不要一把梭哈。
这个机制用上面那个脚本也能实现。在shutil.move循环里加一行判断:
MAX_COUNT = 500 MAX_SIZE_MB = 2048 current_count = 0 current_size_mb = 0 for p in paths: if current_count >= MAX_COUNT or current_size_mb >= MAX_SIZE_MB: print("达到本次清理上限,剩余文件留到下一轮处理。") break # 移动逻辑...这类“风险预算”逻辑,传统清理工具里是绝对不会有的。因为它拖慢清理速度、降低用户爽感,但对系统安全却至关重要。
6. 边界与回滚:AI 方案失效时的兜底机制
把 AI 辅助清理这套流程用了半年多之后,我必须承认它也并非万能。有几个场景是 AI 判断的盲区,在这里一并说明,免得你照搬时翻车。
6.1 AI 判断的三个盲区
盲区一:路径语义歧义。同一个目录名在不同软件里含义完全不同。比如C:\ProgramData\Package Cache,这是 Visual Studio Installer 的安装包缓存目录,很多 VS 组件安装依赖它。如果你只看到路径里有 “Cache” 就判定为可清理,那下次修改 VS 组件时会触发重新下载数 GB 的安装包。AI 可以在上下文里理解这一点,但前提是你得先告诉它你有 VS,或者清单里文件名带明显 VS 特征。
盲区二:文件被占用时的假阳性。Windows 下很多动态链接库(DLL)文件虽然位于临时目录,但可能是由某个进程现场加载的。AI 只看静态路径无法感知这一点,所以脚本移动文件时报错“权限不足”时,不要强行绕过,直接跳过就行。
盲区三:删除后触发软件“重新初始化”的隐性成本。这是一个比较反常的看法:有时候取消删除某文件反而是更理性的选择。比如有些大型设计软件,缓存目录不只是用来加速,还承担着最近打开列表、授权信息临时存储等功能。清了之后虽然重启能重建,但你可能丢失“最近打开的文件”列表,这种损失无法量化,但很影响体验。
6.2 兜底机制一:隔离期观察制度
我在前面的流程里已经埋了隔离机制,但这里要专门再说一下隔离期的设定。我的经验值是:主要工作性质的电脑,至少观察 7 天;娱乐性质的电脑,3 天就行。观察期内正常使用所有常用软件,尤其是那些被清理过的关联软件。没有异常的话,第 8 天清空隔离目录,完成闭环。
6.3 兜底机制二:系统还原点与备份策略
在 AI 给出“建议可释放空间总量”较大的情况(比如超过 10G),我强烈建议先创建一个系统还原点再动手。Windows 下用管理员身份运行 PowerShell:
Checkpoint-Computer -Description "Before-AI-Cleanup"还原点创建需要系统保护功能开启,如果没有开启,在系统属性里打开“系统保护”就行。这个操作的意义不是让你清理后回滚——回滚意味着你清理掉的东西又回来了,而是给你的系统状态留一个安全的“锚点”。万一清理后出现某种顽固问题,不影响日常工作,你随时可以恢复到清理前的状态。
6.4 清理结果验证:怎么看 AI 方案到底有没有效果
最后要说的是验证环节。很多人的“清理”动作做完就结束了,但我建议做一个前后对比,确认清理确实产生了正向收益。我常用的验证指标有三个:
可用空间变化。这个最直观,但要注意:重启后系统可能会自动生成新的缓存文件,所以清理后不要立刻看剩余容量,用一两天之后再统计。
程序冷启动耗时对比。如果清理掉了过期的缓存,你会明显感觉到某些软件启动变快;如果某些软件反而变慢了,说明你误删了它的有效缓存,要赶紧从隔离目录回滚。
系统稳定性观察。清理后如果出现频繁报错、异常退出、关联文件丢失,注意是不是动了哪条双用途文件的奶酪。出现这种情况时,直接看 moved_log 里有没有对应路径的移出记录,有就移回去,基本都能解决。
这套“AI 辅助识别 + 人工复核 + 隔离执行 + 延迟确认”的流程,我前后跑了一年多,保守估计在这台电脑上释放了 100G 以上的磁盘空间,期间没有出现过一次需要事后补救的事故。对比那些动辄“一键清理”的软件,它看起来确实慢了一些、繁琐了一些,但每一步的操作你都心里有数,而不是把整个系统盘的安全寄希望于别人家的一个闭源算法。
最后再分享一个小技巧吧:我给自己建了一个“系统清理台账”文档,每次清理都记录日期、AI 建议的可释放空间、实际执行的空间、隔离期是否出现异常。慢慢地,你就能发现自己这台电脑的“垃圾生成规律”——哪个软件是吃磁盘空间的大户、缓存平均多久失效、哪些目录清理风险最高。把这些规律积累成你自己的一套规则,配合 AI 每次做判断,精准度会滚雪球一样往上提升。清理系统垃圾这件事,说到底不是一次性的任务,而是对你个人电脑使用习惯的一次次深度扫描和修正。