MKLINK /D 和 /J (符号链接和连接) 之间的区别

MKLINK /D 和 /J (符号链接和连接) 之间的区别

我有一个 SSD,另一个磁盘驱动器中有一个 RamDisk。我用它MKLINK /D来将 Google Chrome 缓存从我的 SSD 移动到我的 RamDisk。请问,我的问题是:

  1. 有了MKLINK /D,我的缓存物理上在哪里?SSD?RamDisk?两者兼有?我要将缓存移到我的 RamDisk 吗?还是只是在我的 SSD 和 RamDisk 上复制缓存?我问这个问题是因为相同的文件和文件夹出现在两个驱动器(SSD 和 RamDisk)中。

  2. 是否MKLINK /D适用于文件、文件夹和子文件夹?MKLINK /D此符号链接下的每个文件、文件夹和子文件夹只需一个就够了?文件、文件夹和子文件夹物理上将位于 SSD 或 RamDisk 中吗?

  3. 我应该使用 吗?就我而言,使用或MKLINK /J有什么技术区别?MKLINK /DMKLINK /J

谢谢!

PS1:我已经在 Google 上搜索过这个问题,但是非常困惑。

PS2:我对--disk-cache-dir="x:"解决方案不感兴趣。

答案1

如果你运行,mklink /?你将获得它用于创建符号链接。而/J开关会使其成为连接点而不是链接。要了解差异,您可以查看问题NTFS 连接点和符号链接之间有什么区别? 或有关的信息维基百科

在这两种情况下,文件不会同时存在于两个点,而是通过访问其中一个点,您将被重定向到另一个点。因此,通过为目录设置符号链接,您只会访问另一个位置。因此,缓存仅保留在您的目标(您的 RAM 磁盘)上。

一个简单的例子:

mkdir target
mklink /D linkname target
echo "This is a test" > linkname/test.txt
rmdir linkname
dir target

结果将是一个test.txt以您的target文件夹命名的文件,但不再有指向它的链接。因此cd linkname会失败。

相关内容