Windows 7下的mklink命令通过指定参数可以建立出不同形式的文件或目录链接,分为硬链接(hard link)、符号链接(symbolic link)和软链接(联接)(junction)三种。
建立一个软链接相当于建立一个文件(或目录),这个文件(或目录)用于指向别的文件(或目录),和win的快捷方式有些类似。删除这个链接,对原来的文件(或目录)没有影像没有任何影响;而当你删除原文件(或目录)时,再打开链接则会提示“位置不可用”。
建立一个硬链接相当于给文件建立了一个别名,例如对1.TXT创建了名字为2.TXT的硬链接,若使用记事本对1.TXT进行修改,则2.TXT也同时被修改,若删除1.TXT,则2.TXT依然存在,且内容与1.TXT一样。
Windows 7中将用户设置与系统文件分离,所有的用户设置及用户文件都存储在C盘下的User目录(在中文版Windows 7中显示为“用户”目录),重装系统后所有的系统设置及用户文件都会消失。
Windows 7安装完成后可以将C盘下的User目录转移到非系统分区,如D盘,这样,重装系统后只要重新将C盘下的User目录链接到D盘即可。我们在创建链接后系统在访问C:/User目录其实是在访问D:/User目录。
一) 转移过程
不喜欢windows的做法,把所有的用户和程序数据文件都放在系统盘(windows7/vista下是users和programdata文件夹),还有就是有些软件只能安装在系统盘而根本不给你选择的余地如Chrome。需要有一种办法可把上述文件夹弄到非系统分区去,在Linux系统下这不是问题(ln),但直到windows7才有了好点的解决方案,这就是windows7自带的mklink.exe程序。
把默认放在c盘的users文件夹转移到其他分区,这样就不用担心使用一段时间后c盘越来越大的问题。
1、还没安装windows7时
在安装Win7的过程中,要求输入用户名及密码的时候,先不如输入任何信息,按“Shift+F10”呼出DOS窗口,输入以下命令:
robocopy "C:\Users" "D:\Users" /E /COPYALL /XJ
rmdir "C:\Users" /S /Q
mklink /J "C:\Users" "D:\Users"
2、安装完系统之后
若还需转移文件夹,可以进入计算机管理,点击“Administrator”,选择属性,而后在随后的对话框中去掉“帐户已禁用”之前的勾,而后关闭"计算机管理器”;
例如要把C:\Program Files\Internet Explorer文件夹转移到其他盘,则把下列命令编辑输入新建的bat文件,命名mklink.bat:
robocopy "C:\Program Files\Internet Explorer" "D:\Program Files\Internet Explorer" /e /copyall /xj
rmdir "c:\Program Files\Internet Explorer" /s /q
mklink /j "C:\Program Files\Internet Explorer" "D:\Program Files\Internet Explorer"
开机时按F8键,出现黑底白字的菜单,默认光标在第一项Repair your computer/修复计算机上,直接按回车。之后会弹出2个提示框,直接点Next或OK即可。就来到了下一界面,单击最后一项:Command Prompt/命令行,找到上述mklink.bat文件并执行。
用上述办法把c盘的Program Files里面所有大于15M的文件夹、ProgramData都转移到了其他的分区,暂时没出现任何不良反应。
(二)参数
1、robocopy:此命令为Windows的“强健文件拷贝”命令
例如:
robocopy “C:\Users”“D:\Users” /E /COPYALL /XJ /XD “C:\Users\Administrator”
/E 表示拷贝文件时包含子目录(包括空目录)
/COPYALL 表示拷贝所有文件信息
/XJ 表示不包括Junction points(默认是包括的)
/XD 表示不包括指定的目录,此处指定目录为“C:\Users\Administrator”
2、rmdir:此命令删除指定目录
例如:
rmdir “C:\Users” /S /Q
/S 删除指定目录及其中的所有文件,用于删除目录树。
/Q 安静模式。删除时不询问。
3、mklink:此命令创建符号连接
例如:
mklink /J “C:\Users” “D:\Users”
/J 连接类型为目录联接
注:只有NTFS硬盘才可实现目录联接。
来自
http://emch.blog.163.com/blog/static/1310517382015319101348638/win7用户文件夹转移
(2013-08-10 16:14:45)为什么要转移win7用户文件夹?
Windows7的用户文件夹默认所在位置是系统盘(通常是C盘)下的“\Users”目录之内。该文件夹中储存着所有的用户生成文件,比如你保存在“桌面”上的文件(实际上是保存在C:\Users\你的用户名\Desktop\目录之中),再比如你保存在“我的文档”里的文件(实际上是保存在C:\Users\用户名\Documents目录之中)。
用户文件夹处于系统盘的坏处在于,如若系统盘一旦坏掉,就可能连带用户文件一并丢
失;其次,由于(随着使用不断生成的)用户文件处于系统盘,也没办法时常备份“干净的系
统盘”。
如果能把用户文件夹挪到另外一块儿硬盘上(或者另外一个硬盘分区上),那么系统维护
就会容易得多。平时生成的文件(大多数人放在“桌面”、“我的文档”里的文件最多),都被保
存在系统盘(或分区)之外;于是随时都可以在不必担心用户文件丢失的情况下重新安装系统
(或恢复系统备份)。
注意,以下假设你想把用户文件夹设置在D盘,假定D盘是NTFS分区
case1: win7操作系统已经安装
如果想要移动已安装好的Windows 7操作系统中的用户文件夹,那么就要按以下步骤操作:
WIN (或点击开始菜单)->计算机(右键)–>管理–>本地用户和组(在左边的选项栏里)–>用户–>右边窗口找到Administrator–>右键打开Administrator属性,找到下面的帐户禁用那里,把那个禁用的勾勾去掉,点击确定。
- 注销当前用户(注意,不是“切换用户”),而后以“Administrator”登录
打开命令行窗口,输入以下命令:robocopy “C:\Users” “D:\Users” /E /COPYALL /XJ /XD “C:\Users\Administrator”
此时如果出现如下错误:
错误 32 (0x00000020)正在复制文件C:\Users\UpdatusUser\NTUSER.DAT
另一个程序正在使用此文件,进程无法访问。
正在等待30秒...
那么,你需要先卸载掉NVIDIA的驱动,然后删除掉该文件夹。如果不事先删除NVIDIA的驱动,普通办法删除不了C:\Users\UpdatusUser,如果你用软件(如360超级文件粉碎机)强力删除,那么,在robocopy的时候,又会出现一个C:\Users\TEMP的文件夹无法复制。这是因为,UpdatusUser是作为nvidia更新而用到的,由于没有删除nvidia驱动,文件夹C:\Users\UpdatusUser即使被强力删除,系统又会再建一个TEMP的文件为nvidia服务。
- 注销Administrator,重新用你的用户名登录Windows 7操作系统,而后到“计算机管理器”里禁用Administrator;
由于该文件夹经常会无法删除干净,请准备好强力删除软件(如360超级文件粉碎机)。
以管理员身份打开一个DOS窗口,输入以下命令:
rmdir “C:\Users” /S /Q
mklink /J “C:\Users” “D:\Users”
如果删除不干净,第二个命令(建立映射)是不起作用的,需要用软件强力删除C:\Users,一般可能需要重启,重启后是不能进入你的用户桌面的,因为你的用户数据已经没了,因此在重启时请狂按F8,选择带命令提示符的安全模式进入系统,输入如下命令:
rmdir “C:\Users” /S /Q
mklink /J “C:\Users” “D:\Users”
然后再重启:
shutdown /r
如此大功告成也!
case2: Win7操作系统还未安装,这种情况则很简单。
在安装Windows 7操作系统的过程中,要求输入用户名及密码的时候,先不如输入任何信息,按“Shift+F10”呼出DOS窗口,输入以下命令:
robocopy “C:\Users” “D:\Users” /E /COPYALL /XJ
rmdir “C:\Users” /S /Q
mklink /J “C:\Users” “D:\Users”
而后关闭DOS窗口,按部就班继续安装直至完成。
如此安装的Windows 7操作系统,所有“用户特殊文件夹”(User Special Folder)的内容都已经被设置在D盘(非系统盘)上。
Reference:
http://www.360doc.com/content/11/1031/14/1427138_160542896.shtml