You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何区分VSCode随机命名的workspaceStorage目录对应的实际工作区

方法1:直接读取目录内置的workspace.json映射文件

每个随机命名的工作区缓存目录根路径下都存在一个workspace.json配置文件,里面明确记录了该缓存对应的实际工作区路径,是最精准的匹配方式。

WSL/Linux环境下的查询命令:

# 进入workspaceStorage目录后执行
cd ~/.vscode-server/data/User/workspaceStorage
for d in */; do 
    echo -n "缓存目录:$d --> 对应工作区:"
    jq -r '.folder' "$d/workspace.json" 2>/dev/null || echo "无有效映射"
done

如果没有安装jq,也可以用grep粗略提取:

for d in */; do echo "$d: $(grep -o '"folder":"[^"]*"' "$d/workspace.json" 2>/dev/null | cut -d'"' -f4)"; done

Windows环境下的PowerShell查询命令:

# 进入workspaceStorage目录后执行
cd $env:APPDATA\Code\User\workspaceStorage
Get-ChildItem -Directory | ForEach-Object {
    $jsonPath = Join-Path $_.FullName "workspace.json"
    $workspacePath = "无有效映射"
    if (Test-Path $jsonPath) {
        $json = Get-Content $jsonPath -Raw | ConvertFrom-Json
        $workspacePath = $json.folder
    }
    Write-Host "缓存目录:$($_.Name) --> 对应工作区:$workspacePath"
}

方法2:结合使用状态+访问时间批量筛选冗余缓存

如果不需要精准匹配每一个目录,只是要清理冗余,可以结合两个规则筛选:

  • 规则1:保留包含vscode.lock的目录(当前正在打开的工作区)
  • 规则2:保留最近N天内有访问/修改记录的目录(根据你的使用习惯调整,比如保留30天内的)

WSL/Linux环境下的清理示例(保留30天内使用的缓存+当前打开的缓存):

# 先预览要删除的目录,确认没问题再把echo换成rm -rf
find . -maxdepth 1 -type d ! -exec test -e "{}/vscode.lock" \; -atime +30 -print

Windows环境下的清理示例(保留30天内使用的缓存+当前打开的缓存):

# 先预览要删除的目录
$cutoffDate = (Get-Date).AddDays(-30)
Get-ChildItem -Directory | Where-Object {
    (-not (Test-Path (Join-Path $_.FullName "vscode.lock"))) -and 
    $_.LastAccessTime -lt $cutoffDate
} | Select-Object FullName
# 确认无误后,在上面的命令末尾加 | Remove-Item -Recurse -Force 即可删除

注意事项

  1. 清理前建议先完全关闭VSCode(包括WSL远端的VSCode服务进程),避免误删正在使用的缓存文件
  2. 所有删除操作都建议先执行预览命令,确认要删除的内容符合预期后再执行实际删除

内容的提问来源于stack exchange,提问作者LGG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 02:54:01