小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Win7系統(tǒng)命令講解-mklink命令

 richsky 2012-03-30
桌面、我的文檔、我的圖片等等,尤其是軟件的配置,一切都沒(méi)了。很多來(lái)不及轉(zhuǎn)移的資料都沒(méi)了,頗為心痛!

從 Vista 以后,微軟將用戶文件和用戶的軟件配置( AppData ) 明確劃分開,并且全部存放在使用者的用戶目錄下。

Linux早已這樣做了,并且在Linux中可將 home 掛載為獨(dú)立分區(qū),而微軟顯然還沒(méi)學(xué)到家。用戶目錄依舊和系統(tǒng)目錄一起放在同一分區(qū)。

如何將用戶目錄移動(dòng)到非系統(tǒng)分區(qū)?這是本文的出發(fā)點(diǎn)。但本文的重心不在于此,而是 mklink ,一個(gè)命令。

一、何為 mklink
mklink 是何方神圣,值得專門作文講述?

如果用過(guò) Linux ,那想必也看到過(guò)符號(hào)鏈接(這是一種特殊的文件),也用過(guò) “ ln ” 這個(gè)鏈接命令,mklink 和 ln 的功能幾乎一樣。

mklink 便是用來(lái)創(chuàng)建符號(hào)鏈接的,這個(gè)命令并不知名,使用的人也不多。

自從 Vista 以后,微軟便在 widows中 偷偷地用起了這個(gè)工具 。在用戶目錄下,可以看到很多很像快捷方式的文件,當(dāng)然這是隱藏的,但卻不能打開,其實(shí)這便是符號(hào)鏈接。

>dir C:\Users\wclu /a
驅(qū)動(dòng)器 C 中的卷是 win7
卷的序列號(hào)是 8CD0-A743

C:\Users\wclu 的目錄

2009/06/11 11:42    <DIR>          .
2009/06/11 11:42    <DIR>          ..
2009/06/11 00:04    <DIR>          AppData
2009/06/11 00:04    <JUNCTION>     Application Data [C:\Users\wclu\AppData\Roaming]
2009/06/11 00:04    <DIR>          Contacts
2009/06/11 00:04    <JUNCTION>     Cookies [C:\Users\wclu\AppData\Roaming\Microsoft\Windows\Cookies]
2009/06/11 10:05    <DIR>          Desktop
2009/06/11 00:04    <DIR>          Documents
2009/06/11 02:44    <DIR>          Downloads
2009/06/11 00:04    <DIR>          Favorites
2009/06/11 00:04    <DIR>          Links
2009/06/11 00:04    <JUNCTION>     Local Settings [C:\Users\wclu\AppData\Local]
2009/06/11 00:04    <DIR>          Music
2009/06/11 00:04    <JUNCTION>     My Documents [C:\Users\wclu\Documents]

上述標(biāo)紅色的文件,便是符號(hào)鏈接了(上述文件并非C:\Users\wclu目錄下全部文件) 。

Vista/Windows 7使用這些符號(hào)鏈接,是為了兼容XP等系統(tǒng)。

二、mklink 用法
mklink 只能在命令提示符 “CMD” 中使用。

>mklink /?
創(chuàng)建符號(hào)鏈接。

MKLINK [[/D] | [/H] | [/J]] Link Target

/D      創(chuàng)建目錄符號(hào)鏈接。黙認(rèn)為文件
符號(hào)鏈接。
/H      創(chuàng)建硬鏈接,而不是符號(hào)鏈接。
/J      創(chuàng)建目錄聯(lián)接。
Link    指定新的符號(hào)鏈接名稱。
Target 指定新鏈接引用的路徑
(相對(duì)或絕對(duì))。

注:上述的符號(hào)鏈接等同于Linux中的軟鏈接。

為了試驗(yàn) mklink 的功能,我在 C分區(qū)中創(chuàng)建目錄 a ,并在目錄中存放文件 1.txt。

創(chuàng)建文件鏈接
E:\>mklink c:\1   c:\a\1.txt拒絕訪問(wèn)。

E:\>mklink c:\2.txt c:\a\1.txt
為 c:\2.txt <<===>> c:\a\1.txt 創(chuàng)建的符號(hào)鏈接

可見為文件創(chuàng)建鏈接時(shí),符號(hào)鏈接文件的擴(kuò)展名要和原文件保持一致。

E:\>mklink c:\a\1.txt d:\3.txt
當(dāng)文件已存在時(shí),無(wú)法創(chuàng)建該文件。

E:\>mklink d:\3.txt c:\a\1.txt
為 d:\3.txt <<===>> c:\a\1.txt 創(chuàng)建的符號(hào)鏈接

可見為文件創(chuàng)建鏈接時(shí),必須是 “mklink 符號(hào)鏈接文件名   原文件名”的格式。

創(chuàng)建目錄鏈接
E:\>mklink /d c:\b d:\a
為 c:\b <<===>> d:\a 創(chuàng)建的符號(hào)鏈接

雖然d:\a 目錄不存在,但依然可以創(chuàng)建鏈接,很好很強(qiáng)大。但打開鏈接時(shí),提示錯(cuò)誤。

E:\>mklink /d d:\a c:\a
為 d:\a <<===>> c:\a 創(chuàng)建的符號(hào)鏈接

E:\>dir d: /a
驅(qū)動(dòng)器 D 中的卷是 soft
卷的序列號(hào)是 BE86-8884

D:\ 的目錄

2009/06/11 10:00    <DIR>          $RECYCLE.BIN
2009/06/11 13:08    <SYMLINK>      3.txt [c:\a\1.txt]
2009/06/11 13:18    <SYMLINKD>     a [c:\a]
2009/06/11 12:54    <DIR>          Program Files
2009/06/11 09:58    <DIR>          System Volume Information
1 個(gè)文件              0 字節(jié)
4 個(gè)目錄 31,089,442,816 可用字節(jié)

當(dāng)把D分區(qū)中的鏈接文件刪除時(shí),C分區(qū)中的文件和文件夾不受任何影響。

三、mklink /d 與 makelink /j 的異同
從 mklink 的幫助中可以看到,兩者皆可以創(chuàng)建目錄鏈接。

細(xì)心的同學(xué)可以發(fā)現(xiàn),前者是創(chuàng)建目錄鏈接,而后者是創(chuàng)建目錄聯(lián)接。

一字之差,有何分別?

下面分別用這兩種方式為同一目錄創(chuàng)建鏈接:

E:\>mklink /j d:\a c:\a
為 d:\a <<===>> c:\a 創(chuàng)建的聯(lián)接

E:\>mklink /d d:\b c:\a
為 d:\b <<===>> c:\a 創(chuàng)建的符號(hào)鏈接

下面顯示D分區(qū)中的文件及目錄列表:

E:\>dir d: /a
驅(qū)動(dòng)器 D 中的卷是 soft
卷的序列號(hào)是 BE86-8884

D:\ 的目錄

2009/06/11 10:00    <DIR>          $RECYCLE.BIN
2009/06/11 13:33    <SYMLINK>      1.txt [c:\a\1.txt]
2009/06/11 13:34    <JUNCTION>     a [c:\a]
2009/06/11 13:35    <SYMLINKD>     b [c:\a]
2009/06/11 12:54    <DIR>          Program Files
2009/06/11 09:58    <DIR>          System Volume Information
1 個(gè)文件              0 字節(jié)
5 個(gè)目錄 31,089,442,816 可用字節(jié)

mklink 不加參數(shù)或加參數(shù) /d 時(shí),創(chuàng)建的鏈接文件為<SYMLINK>型(<SYMLINKD>代表鏈接到目錄)。

當(dāng)加參數(shù) /j 時(shí),只能為目錄創(chuàng)建聯(lián)接,并且創(chuàng)建的聯(lián)接文件為<JUNCTION>型,兩種類型的鏈接文件有顯著區(qū)別:

從最開始的 “ >dir C:\Users\wclu /a ” 可以看出,微軟自家使用的都是<JUNCTION>型,至于為何,留待考證。

四、鏈接文件的特性
剛剛講述了如何用 mklink 創(chuàng)建鏈接文件,那么接下來(lái)重點(diǎn)講述如何鏈接文件的特性,既然是特性,那就是與眾不同了。

符號(hào)鏈接文件自身不能被 “復(fù)制”(只能通過(guò)特殊方法才能復(fù)制)
當(dāng)復(fù)制符號(hào)鏈接文件時(shí),會(huì)將符號(hào)鏈接所鏈接的目標(biāo)文件或目錄進(jìn)行復(fù)制,并非是復(fù)制符號(hào)鏈接文件本身。
如何實(shí)現(xiàn)符號(hào)鏈接文件的復(fù)制呢?
>copy /?
/L           如果源是符號(hào)鏈接,請(qǐng)將鏈接復(fù)制
到目標(biāo)而不是源鏈接指向的實(shí)際文件。

>xcopy /?      /B           對(duì)照鏈接目標(biāo)復(fù)制符號(hào)鏈接本身

/* d:\1.txt 為<SYMLINK>型符號(hào)鏈接 */
E:\>xcopy d:\1.txt e:\1.txt /b
目標(biāo) E:\1.txt 是文件名
還是目錄名
(F = 文件,D = 目錄)? F
D:\1.txt
復(fù)制了 1 個(gè)文件

/* d:\a 為<JUNCTION>型符號(hào)鏈接 */
E:\>xcopy d:\a e:\a /B
目標(biāo) E:\a 是文件名
還是目錄名
(F = 文件,D = 目錄)? D
復(fù)制了 0 個(gè)文件

/* d:\b 為<SYMLINKD>型符號(hào)鏈接 */
E:\>xcopy d:\b e:\b /B
目標(biāo) E:\b 是文件名
還是目錄名
(F = 文件,D = 目錄)? D
復(fù)制了 0 個(gè)文件

E:\>dir e: /a
驅(qū)動(dòng)器 E 中的卷是 data
卷的序列號(hào)是 FEEE-FB51

E:\ 的目錄

2009/06/11 10:00    <DIR>          $RECYCLE.BIN
2009/06/11 13:33    <SYMLINK>      1.txt [c:\a\1.txt]
2009/06/11 13:34    <DIR>          a
2009/06/11 13:35    <SYMLINKD>     b [c:\a]
2009/06/11 09:58    <DIR>          System Volume Information
1 個(gè)文件              0 字節(jié)
4 個(gè)目錄 31,362,203,648 可用字節(jié)

可見采用xcopy命令并上參數(shù) /B ,可以成功復(fù)制 <SYMLINK> 型的符號(hào)鏈接文件,而<JUNCTION>型鏈接卻不能被復(fù)制。

符號(hào)鏈接文件的透明性
符號(hào)鏈接的操作是透明的:對(duì)符號(hào)鏈接文件進(jìn)行讀寫的程序會(huì)表現(xiàn)得直接對(duì)目標(biāo)文件進(jìn)行操作。
普通的文件操作命令(如cp、rm等)都能直接作用于符號(hào)鏈接。用于讀寫文件內(nèi)容的命令將會(huì)直接訪問(wèn)目標(biāo)文件。
五、使用 mklink 實(shí)現(xiàn)用戶目錄的移動(dòng)
前面說(shuō)過(guò)本文的出發(fā)點(diǎn)是“移動(dòng)用戶目錄到非系統(tǒng)分區(qū)”,想起以前中學(xué)寫作文,很強(qiáng)調(diào) “首尾照應(yīng)”,那么,照應(yīng)來(lái)了。

如何通過(guò)mklink實(shí)現(xiàn)vista/windows7中用戶目錄的移動(dòng)?可參考以下兩篇文章:

http://www./read.php?11

http:///move-user-profile-in-windows-7/

引用其中部分內(nèi)容,也即是具體步驟:

在“計(jì)算機(jī)管理”里把Administrator用戶激活,注銷后用Administrator登錄;
把“C:\Users\我的用戶名”整個(gè)目錄移到其它盤上,假設(shè)移到“D:\我的用戶名”;
用mklink創(chuàng)建目錄鏈接:mklink /d C:\Users\我的用戶名   D:\Users\我的用戶名;
重新登錄你自己的賬號(hào),大功告成;
下次重裝時(shí),還用同一個(gè)用戶名,先用Administrator登錄后把新系統(tǒng)中的"C:\Users\我的用戶名"
刪除(否則mklink會(huì)報(bào)無(wú)法創(chuàng)建鏈接),再用第3步把你位于D盤上的目錄重新做下鏈接即可。
(本人注:推薦進(jìn)入雙系統(tǒng)或者 Winpe, 移動(dòng) C:\Users 中的用戶目錄。)

直接按照以上步驟進(jìn)行操作會(huì)出現(xiàn)上述我所說(shuō)的問(wèn)題,原有 C:\Users\我的用戶名 目錄下的符號(hào)鏈接文件在復(fù)制后會(huì)失效,變成一個(gè)個(gè)空目錄。

為了解決這個(gè)問(wèn)題,可在 D:\Users\我的用戶名 新建系統(tǒng)原有鏈接文件。

mklink /D    "D:\Users\wclu\Application Data" D:\Users\wclu\AppData\Roaming
mklink /D    "D:\Users\wclu\Cookies" D:\Users\wclu\AppData\Roaming\Microsoft\Windows\Cookies
mklink /D    "D:\Users\wclu\Local Settings" D:\Users\wclu\AppData\Local
mklink /D    "D:\Users\wclu\My Documents" D:\Users\wclu\Documents
mklink /D    D:\Users\wclu\NetHood "D:\Users\wclu\AppData\Roaming\Microsoft\Windows\Network Shortcuts"
mklink /D    D:\Users\wclu\PrintHood "D:\Users\wclu\AppData\Roaming\Microsoft\Windows\Printer Shortcuts"
mklink /D    D:\Users\wclu\Recent D:\Users\wclu\AppData\Roaming\Microsoft\Windows\Recent
mklink /D    D:\Users\wclu\SendTo D:\Users\wclu\AppData\Roaming\Microsoft\Windows\SendTo
mklink /D    D:\Users\wclu\Templates D:\Users\wclu\AppData\Roaming\Microsoft\Windows\Templates
mklink /D    "D:\Users\wclu\「開始」菜單" "D:\Users\wclu\AppData\Roaming\Microsoft\Windows\Start Menu"

(wclu為本人的用戶名,需要替換掉,將上述內(nèi)容保存為.bat文件,執(zhí)行,完美無(wú)暇、如假包換的用戶目錄誕生了。)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多