C盘爆满?迁移Codex与VS Code缓存到D盘,告别空间告急

发布时间:2026/9/1 20:26:02
C盘爆满?迁移Codex与VS Code缓存到D盘,告别空间告急 C 盘又红灯了。这次不是游戏缓存不是微信文件而是开发工具链里的“隐形大户”Codex 的历史会话和缓存、VS Code 插件扩展目录、自动化任务跑出来的临时文件与日志一点一点把 C 盘可用空间挤没了。如果你也在用 Codex 写代码、跑自动化任务大概率已经遇到 C 盘从“还够用”变成“只剩几个 GB”的过程。我这次没有分区、没有格式化也没有重新安装任何软件只是把 Codex 缓存、插件目录和自动化工作区整体搬到了 D 盘C 盘可用空间一下就回来了。这篇博客会把完整的迁移思路和命令整理出来。先说明适用范围Windows 10/11、本地安装 VS Code、使用 Codex CLI 或 Codex 插件、通过自动化脚本处理日常任务的用户都可以参考。核心操作只有三步用 robocopy 把目录复制到 D 盘并在原位置创建 junction目录联接应用无感知继续读写原路径用用户级环境变量把 TEMP、npm 缓存、pip 缓存指到 D 盘把自动化任务的工作区和虚拟环境统一放到 D 盘。整个过程半小时以内能完成风险点集中在“应用没完全退出就移动文件”和“junction 创建失败”两处文章后面会给排查方法。为什么值得做因为无论是 Codex 还是 VS Code默认都倾向于把缓存和扩展写到当前用户目录下也就是C:\Users\你的用户名。Codex 的历史会话、checkpoint、日志会不断累积VS Code 每装一个插件都要往\.vscode\extensions里写文件自动化任务如果代码里写死了路径还会把中间产物、日志、虚拟环境全部堆到 C 盘。这些目录单独看都不大叠在一起就非常可观。与其每天手动清理不如一次性调整目录位置把“写入重心”从 C 盘换到 D 盘。这篇文章不是让你删除所有缓存再重新下载也不是让你用第三方清理软件暴力清扫。它是把“清理 C 盘”变成一个可复用、可验证的工程操作。你可以照着文章的顺序逐步执行也可以只选其中某一节比如只迁移 Codex 缓存目录。迁移完成后C 盘的写入压力会明显下降Codex 历史会话、插件配置、自动化任务的日志都还保留不会出现“清理完软件全要重新配置”的副作用。1. 核心能力速览在动手之前先把这次迁移方案的覆盖面、方式和风险列清楚项目说明目标对象Codex 配置/缓存目录、VS Code 扩展目录、自动化任务工作区、临时文件与包管理缓存默认位置示例C:\Users\你的用户名\.codex、C:\Users\你的用户名\.vscode\extensions、C:\Users\你的用户名\AppData\Local\Temp迁移方式robocopy 移动 mklink /J目录联接用户级环境变量重定向对应用的影响应用无感知原路径读写仍然可用不需要重新安装或重新配置是否重装软件不需要需要权限普通用户目录多数场景可用遇到权限问题请用管理员命令提示符操作耗时时长取决于待迁移目录体积和磁盘速度风险等级中等偏低核心风险是未完整退出应用导致文件占用、junction 创建失败迁移后维护软件更新、插件安装、Codex 升级后建议复查目录联接是否仍然存在从结果来看迁移之后 C 盘可用空间会立刻回升回升多少取决于你实际积累了多少会话和缓存。一个用了几个月的开发机清理出来几个 GB 到十几个 GB 都很常见但这只是经验判断具体要在自己的机器上看。2. 适用场景与使用边界这个方案适合下面几类人本地开发主力机C 盘容量偏小剩余空间长期告急长期使用 Codex CLI 或 VS Code 里的 Codex 插件历史会话和日志较多经常跑自动化任务脚本会把中间产物和日志写到项目目录或临时目录不想重装软件只想调整目录位置来解决空间问题。不推荐在以下场景直接套用公司 IT 策略明确限制用户修改安装目录、缓存目录的桌面环境多用户共用一台机器其他用户可能依赖默认路径服务器或 CI 构建机这类环境通常需要可重复自动化配置junction 方案会增加维护成本。使用边界需要单独强调。本文的移动对象是“用户级缓存目录和应用扩展目录”不是系统目录也不是安装目录。不要尝试用同样方式移动C:\Windows、C:\Program Files或 VS Code 主程序目录。任何移动操作之前先把 Codex 配置目录备份一次确认配置无误再执行。对于公司电脑优先查清楚 IT 策略是否允许修改这些路径。如果你用 Codex 自动化任务处理他人文档、图片、音视频或批量生成内容确保所有输入素材都来自合法渠道输出内容用于合法用途不要拿自动化能力去批量处理未经授权的数据。3. 迁移前的准备工作迁移最忌讳“想到哪搬到哪”。先花几分钟检查磁盘空间、统计目录体积、规划 D 盘目录结构后面执行起来会顺畅很多。3.1 确认 C 盘当前空间在 PowerShell 里执行Get-PSDrive C输出里会有Free和Used两列先把当前剩余空间记下来迁移完成后用来对比效果。3.2 统计各目录实际占用判断谁在占用 C 盘不要靠感觉直接用 PowerShell 统计。下面命令会计算C:\Users\你的用户名\.codex目录的总大小$folder $env:USERPROFILE\.codex if (Test-Path $folder) { $sizeBytes (Get-ChildItem $folder -Recurse -Force -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum {0:N2} GB -f ($sizeBytes / 1GB) }同类命令可以继续统计C:\Users\你的用户名\.vscode\extensions、C:\Users\你的用户名\AppData\Local\Temp、C:\Users\你的用户名\AppData\Local\npm-cache等目录。注意如果C:\Users\你的用户名\.codex已经变成 junction统计结果会跟着链接走这时直接去目标盘统计更准确。3.3 规划 D 盘目录结构建议先建好固定目录后续所有缓存和自动化工作区都往这里放D:\DevCache ├─ codex ├─ vscode-extensions ├─ npm-cache ├─ pip-cache └─ temp D:\DevWorkspace ├─ automation ├─ logs └─ venvNew-Item -ItemType Directory -Force -Path D:\DevCache\codex, D:\DevCache\vscode-extensions, D:\DevCache\npm-cache, D:\DevCache\pip-cache, D:\DevCache\temp, D:\DevWorkspace\automation, D:\DevWorkspace\logs, D:\DevWorkspace\venv | Out-Null3.4 备份 Codex 配置Codex 的登录凭证、模型配置、历史会话都集中在.codex目录。迁移前先把这个目录完整复制一份避免误操作导致登录失效Copy-Item -Path $env:USERPROFILE\.codex -Destination D:\DevCache\codex-backup-日期 -Recurse -Force备份完成后再开始正式迁移。如果你担心 robocopy 的/MOVE参数误删数据可以先用不带/MOVE的方式复制验证成功后再手动删除源目录。4. 迁移 Codex 配置与缓存目录4.1 关闭相关进程打开任务管理器找到 Codex CLI 进程、VS Code 进程、Node.js 相关后台进程确认全部退出。只要有一个文件被占用robocopy 就会报“拒绝访问”。4.2 移动目录并创建 junction在命令提示符cmd中执行。第一步把.codex整体移动到 D 盘robocopy C:\Users\你的用户名\.codex D:\DevCache\codex /E /COPYALL /MOVE解释一下参数/E复制所有子目录包括空目录/COPYALL复制所有文件属性和权限信息/MOVE复制完成后删除源文件。robocopy 的返回值不是常规意义的 0而是位掩码0 到 7 都算成功超过 7 才需要关注。命令完成后原C:\Users\你的用户名\.codex目录应该已经被移动。第二步在 C 盘原位置创建目录联接mklink /J C:\Users\你的用户名\.codex D:\DevCache\codex/J创建的是 junction目录联接和符号链接不同普通用户权限通常也能创建。如果系统提示“您没有足够的权限”就用管理员身份重新打开命令提示符执行。执行成功后C:\Users\你的用户名\.codex本身不再占 C 盘空间但应用访问这个路径时会被自动导向到D:\DevCache\codex。4.3 验证 Codex 数据没有丢重新打开终端执行 Codex 命令看看历史会话还在不在登录状态是否正常。如果配置没有生效检查一下目录联接是否创建成功dir C:\Users\你的用户名\.codex输出中如果看到JUNCTION标记说明目录联接正常。如果看到的是普通文件夹说明移动失败或 junction 被覆盖需要重新操作。4.4 扩展部分版本支持环境变量指定目录有些 Codex 版本支持通过CODEX_HOME一类的环境变量直接指定配置目录。这种方式比 junction 更“干净”但不同版本行为不一致。如果你希望长远维护更简单建议以官方文档为准优先使用官方支持的方式如果只是想快速解决 C 盘问题junction 方案对所有本地应用都透明不需要逐个版本适配。5. 迁移 VS Code 插件扩展目录5.1 为什么扩展目录也值得移VS Code 的扩展默认装在C:\Users\你的用户名\.vscode\extensions。Codex 插件、Python 插件、Remote 插件、主题包、语言服务器插件装得越多目录越大。很多插件还带语言服务二进制文件单个扩展就能占用几百 MB积少成多。5.2 移动扩展目录关闭 VS Code 之后在命令提示符中执行robocopy C:\Users\你的用户名\.vscode\extensions D:\DevCache\vscode-extensions /E /COPYALL /MOVE mklink /J C:\Users\你的用户名\.vscode\extensions D:\DevCache\vscode-extensions这里和迁移.codex的做法一致。执行完成后重新打开 VS Code打开扩展面板确认所有扩展仍然存在Codex 插件能正常加载。5.3 不创建 junction 的备选方案如果不希望改动 .v