有台windows服务器C盘空间不足,占磁盘空间较大的文件要挪到其他磁盘又会涉及到应用程序的修改等问题,怎么破?
LINUX下使用’ln -s’创建软链接是再寻常不过的操作,那么windows下是否也可以进行相应的操作呢?
答案是肯定的。
可以实现相关功能的工具有2个,分别是mklink和function,均只能用于windwos server 2008+,其中mklink为系统自带,junction需自行下载。
mklink
基本语法格式
1 | MKLINK [[/D] | [/H] | [/J]] Link Target |
参数解释
/D是符号链接,/J是目录联接。
创建的链接名称都是类似快捷方式的文件夹;都不会占用空间;访问该名称相当于访问指定的目标文件。
区别在于符号链接的Target只能使用绝对路径,目录联接的Target可以使用相对路径。
/H是硬链接,需要占用空间;删除原文件或新建文件中的一个不会影响文件。
针对文件创建符号链接,不添加任何参数。
/H创建硬链接只能针对文件,不能对文件夹。
/D和/J创建符号链接或目录链接只能针对文件夹,不能对文件。
示例
- 为C:\tlab\test\111.txt文件创建符号链接
mklink C:\tlab\111.txt C:\tlab\test\111.txt
- 为C:\tlab\test目录创建符号链接
mklink /d D:\test C:\tlab\test
- 为C:\tlab\test目录创建目录链接
mklink /j D:\test C:\tlab\test
- 为D:\Dns\DNSTEST\openFtp.txt文件创建硬链接
mklink /h D:\Dns\1.txt D:\Dns\DNSTEST\openFtp.txt
- 相对路径创建
命令行切换至C:\talb,该文件夹下有test文件夹,分别利用相对路径进行下面操作mklink /d C:\Users\xiaohuihui\test test
提示为创建成功,当点击创建的符号链接访问时出现错误提示mklink /j C:\Users\xiaohuihui\test test
提示创建成功,当点击创建的目录链接访问时正常
junction
Junction用于NTFS文件系统,其作用类似mklink /j参数。
junction连接创建只能针对文件夹,不能针对文件使用方法
下载junction文件后放到C:\WINDOWS目录下,直接在命令行使用。语法格式
1
2
3
4
5
6
7
8
9
10
11The first usage is for displaying reparse point information, the
second usage is for creating a junction point, and the last for
deleting a junction point:
usage: junction64 [-s] [-q] <file or directory>
-q Don't print error messages (quiet)
-s Recurse subdirectories
usage: junction64 <junction directory> <junction target>
example: junction d:\link c:\windows
usage: junction64 -d <junction directory>
示例
- 创建junction连接,将C:\tlab\test目录连接至D:\test
junction64 D:\test C:\tlab\test
- 删除D:\test的junction连接
junction64 -d D:\test
下载地址及官方文档
Junction v1.07