空白白白白头像

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
└─ venv
New-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-Null

3.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

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/weixin_28835789/article/details/164200460

文章来源转载

评论

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--