符号链接与目录联结:高级技巧之将文件夹移出C盘
一、从一次C盘爆满的调试现场说起
上周排查一个线上编译卡死的问题,发现CI服务器的C盘只剩200MB。用SpaceSniffer扫了一眼,发现C:\Users\Jenkins\.gradle目录占了23GB——这是Gradle的本地缓存目录。常规思路是修改环境变量GRADLE_USER_HOME,但服务器上跑着几十个历史任务,重新配置风险太大。这时候,符号链接(Symbolic Link)就成了救命稻草:把整个.gradle目录挪到D盘,然后在原位置创建一个“替身”,让所有程序以为文件还在C盘。
这种操作在嵌入式开发里也常见。比如NFS挂载的根文件系统,或者把/opt链接到更大的分区。Windows下的符号链接和目录联结(Junction),本质上都是让一个路径“指向”另一个位置。
二、符号链接 vs 目录联结:别用错了
很多人分不清mklink的几种模式,这里踩过坑。Windows下主要有三种:
:: 创建符号链接(可跨分区,支持文件和文件夹)
mklink /D C:\Users\Jenkins\.gradle D:\Cache\.gradle
:: 创建目录联结(仅文件夹,只能本地分区)
mklink /J C:\ProgramData\LargeLogs D:\Logs\LargeLogs
:: 创建硬
订阅专栏 解锁全文
508



被折叠的 条评论
为什么被折叠?



