利用目录连接解决C盘数据文件过大的问题
上篇介绍了《PowerShell统计Windows的文件夹大小 》,根据统计结果,我发现总共有几个文件占用比较夸张,具体如下所示:
1 | C:\ProgramData\ |
1 | $env:LOCALAPPDATA 对应 C:\Users\用户\AppData\Local |
从上面的统计可以看到,NVIDIA占用真的多啊,此时需要寄出老祖经典名场面

大概看了下,Notion是因为里面的C:\Users\用户\AppData\Roaming\Notion\Partitions占用了18G,直接将其删除掉,保险起见使用如下命令:
1 | # 停止进程 |
Notion 使用了类似浏览器的索引技术(IndexedDB),当你浏览含有大量图片、视频或嵌入内容的页面时,Notion 会将这些资源缓存在本地以提高加载速度。
多账号切换: 如果你在客户端登录了多个账号,每个账号都会生成独立的缓存。
重型页面: 频繁查看带有大量附件的数据库会迅速填满该目录。
为了避免后期缓存太多导致占用C盘,将其剪切到其他盘,例如E:\AppData\Notion,然后创建软连接到这里
1 | New-Item -ItemType Junction -Path "$env:APPDATA\Notion" -Target "E:\AppData\Notion" |
同样的方式可以将JetBrains也如此操作:
1 | New-Item -ItemType Junction -Path "$env:LOCALAPPDATA\JetBrains" -Target "E:\AppData\JetBrains\Local" |
如果你是用的是CMD,也可以使用如下命令,效果是相同的,但更推荐使用PowerShell:
1 | mklink /j "C:\Users\用户\AppData\Local\JetBrains" "E:\AppData\JetBrains\Local" |
设置完成后确认下是否有误
1 | Get-Item "$env:APPDATA\Notion" Select-Object Mode, LinkType, Target |
输出如下:
1 | Mode LinkType Target |
这样就再也不用担心C盘被塞满了。当然,Nvidia也可以这么操作,但是通常不建议这么干。
最佳方案就是笔记本系统盘使用1T的SSD,另一个插槽买个2T SSD,为了方便管理可以将2T的分为D盘和E盘。
关于PowerShell的目录链接和符号链接,大致区别如下:
特性
Junction (目录联接)
Symbolic Link (符号链接)
创建命令
New-Item -ItemType Junction
New-Item -ItemType SymboliLink
支持对象
仅限目录(文件夹)
目录 + 文件
跨盘符支持
支持(从 C 搬到 D)
支持
远程路径
不支持(必须是本地硬盘)
支持(可以链接到局域网共享目录)
路径类型
使用绝对路径
支持相对路径
移动目标后
立即失效
立即失效
Junction (目录联接) —— “分身术”
Junction 是 NTFS 文件系统的一种硬性重定向。当你访问 C:\Users\用户\AppData\Local\JetBrains 时,文件系统内核会直接将其重定向到 D:\JetBrains_Data\Local。
- 特点:对于软件来说,它完全意识不到自己在 D 盘工作。它的兼容性最高,非常适合用来搬移
AppData下的软件缓存。 - 历史:从 Windows 2000 开始就存在,非常稳定。
Symbolic Link (符号链接/软链接) —— “更强的快捷方式”
它更像是一个特殊的“文件”,里面记录了目标的路径信息。
- 特点:它可以指向文件(比如把一个巨大的游戏资源文件
.pak链到别处)。 - 缺点:创建符号链接通常需要管理员权限(除非开启了 Windows 开发人员模式)。有些旧软件可能不识别符号链接。











