Win系统下文件夹映射的实现(将文件夹从一个盘映射到另一个盘)

2024-03-11 15:43:47 浏览数 (2)

要实现这种效果,除了用同步软件来做外,还可以用Win的文件夹映射命令来实现。具体的操作命令如下:

代码语言:javascript复制
MKLINK [[/D] | [/H] | [/J]] Link Target

/D:创建目录符号链接。默认为文件符号链接。 /H:创建硬链接,而不是符号链接。 /J:创建目录联接。 Link:指定新的符号链接名称。 Target:指定新链接引用的路径(相对或绝对)

如将G盘的123文件夹映射到L盘并重命名为test

mklink 硬链接/H和符号链接/D的区别

硬链接只能用于文件,不能用于文件夹,而且硬链接和目标文件必须在同一个分区或者卷中。硬链接的目的是为了给文件创建多个目录路径,而不像符号链接是为了指向某个已有的文件。

假设要给Target. txt文件创建一个硬链接,Win系统下可以执行以下命令:

代码语言:javascript复制
mklink /H Link.txt Target.txt

和符号链接一样,硬链接中所做的任何修改,都会自动应用到目标文件上。但是硬链接具有以下一些不同的地方。

(1)硬链接必须引用同一个分区或者卷中的文件,而符号链接可以指向不同分区或者共享文件夹上的文件或者文件夹。

(2) 硬链接只能引用文件,而符号链接可以引用文件或者文件夹。

(3)Windows会自动维护硬链接,即使把硬链接复制到其他文件夹,硬链接和目标都可以继续访问。

(4)删除目标文件,硬链接可以继续保留。只有把目标文件和所有的硬链接都删除,才能把该文件彻底删除。

(5)如果win7把符号链接的目标文件删除,然后用一个同名文件替换,则符号链接会指向新的目标文件;而把硬链接的目标文件删除’再用同名文件替换,则硬链接还是会继续引用原始文件。

(6)也就是说,硬链接和目标文件的地位相等。事实上,原始的目标文件本身也相当于硬链接,新建硬链接,只是相当于增加一个目录路後而已。

(7)硬链接看上去和真的文件一模一样(实际上就是真实的文件),不像符号链接那样有一个快捷方式的小箭头,但是硬链接并不会增加磁盘空间的占用。

(8)对硬链接进行NTFS权限的修改,会同时影响到目标文件(因为两者等价),而符号链接和目标文件可以设置不同的NTFS权限。

mklink /D和/J的区别

目录符号链接和目录联接(看原文即目录的硬链接)的区别在于:

目录联接在创建时会自动引用目标目录的绝对路径,而符号链接允许相对路径的引用。

如分别用 mklink /D dird tdir 和 mklink /J dirj tdir 创建 dird、dirj 对相对目录的 tdir 的符号链接和目录联接,之后将 dird、dirj 移动到其它目录下,则访问 dird 时会提示“位置不可用”,访问 dirj 时仍然正常指向 tdir;

/D:创建目录符号链接。默认为文件符号链接。 /J:创建目录联接。

且win10_x64_build10565的cmd下dir命令查看会发现, dird符号链接(软链接)链接到的是相对路径下的tdir文件(不管是否存在tdir文件), 且文件类型是symlink, dirb目录联接则链接到绝对(全)路径下的tdir文件, 且文件类型是junction(可能是系统自动把相对路径转换为全路径)

而分别用 mklink /D dird c:demotdir 和 mklink /J dirj c:demotdir 创建 c:demotdir 的符号链接和目录联接,再将这两个目录链接移动到其它目录下,则 dird 和 dirj 均可正常指向 c:demotdir;

由此可见当创建目录链接时对目标目录使用绝对路径,D 和 J 两个参数实现的目录链接效果是一样的

借鉴自:https://blog.csdn.net/guyue35/article/details/49761347 特别感谢作者:guyue35

0 人点赞