目录联接(路标)创建方法
把 C 盘的目录搬到 D 盘后,在 C 盘原位置留一个"路标",程序以为它还在 C 盘,实际读写都落在 D 盘。
本次实例:百度网盘加速缓存
- C 盘路标:
C:\Users\Administrator\AppData\Roaming\baidu\BaiduYunKernel\.accelerate - D 盘真实目录:
D:\BaiduNetdiskDownload\.accelerate
创建步骤
1. 先退出占用该目录的程序
右下角托盘图标右键 → 退出。可用以下命令确认没有残留进程:
Get-Process | Where-Object { $_.ProcessName -match 'baidu|netdisk|yun' }
2. 创建 D 盘目标目录
New-Item -Path "D:\BaiduNetdiskDownload\.accelerate" -ItemType Directory -Force
3. 移动数据(可选)
如果原目录有数据要保留,先移动到 D 盘;如果数据可丢弃(如本例的加速缓存),直接删除原目录即可。
# 有数据要保留时
Move-Item -Path "C:\原路径" -Destination "D:\目标路径" -Force
# 数据可丢弃时
Remove-Item "C:\原路径" -Recurse -Force -Confirm:$false
注意:以 . 开头的隐藏目录(如 .accelerate)用 Move-Item 时目标路径要写完整,否则会在目标下多套一层同名目录。
4. 创建路标(目录联接)
PowerShell 写法:
New-Item -ItemType Junction -Path "C:\Users\Administrator\AppData\Roaming\baidu\BaiduYunKernel\.accelerate" -Value "D:\BaiduNetdiskDownload\.accelerate"
等价的 cmd 写法:
mklink /J "C:\Users\Administrator\AppData\Roaming\baidu\BaiduYunKernel\.accelerate" "D:\BaiduNetdiskDownload\.accelerate"
参数说明:
-ItemType Junction:创建目录联接(路标)-Path:C 盘的路标位置(原路径,创建前必须不存在)-Value:D 盘的真实目录(必须已存在)
验证
$link = Get-Item "C:\Users\Administrator\AppData\Roaming\baidu\BaiduYunKernel\.accelerate"
$link.Mode # 应显示 d----l,l 表示链接
$link.Target # 应显示 D:\BaiduNetdiskDownload\.accelerate
删除路标
Remove-Item "C:\Users\Administrator\AppData\Roaming\baidu\BaiduYunKernel\.accelerate" -Recurse -Force -Confirm:$false
只删 C 盘的路标,D 盘的真实数据不受影响。
注意事项
- 路标路径(C盘)在创建前必须不存在,先删原目录再建路标
- 目标路径(D盘)必须先创建好
- 删除路标用
-Recurse -Force -Confirm:$false,避免交互提示卡住 - Junction 只对本机有效,重启后依然生效,不需要重新创建