Windows 7 提供 Symbolic link, Hard link 和 Junction 讓你可以連結兩個資料夾或檔案

建立方法如下,以工作管理員權限啟動命令提示字元(cmd),執行下列命令

mklink [[/D] | [/H] | [/J]] 連結 目標

參數說明

/D 建立一個資料夾的 symbolic link. (預設為檔案的 symbolic link)
/H 建立一個 hard link.
/J 建立一個資料夾的 junction.
“連結" 是要建立此連結的位置
“目標" 是被連結資料夾或檔案的(絕對或相對)路徑

例子

mklink /J C:\Dropbox C:\Documents\Dropbox
mklink /D “E:\Link test\aslink" “E:\Link test\afolder"
mklink /J “E:\Link test\ajunction" “E:\Link test\afolder"
mklink /H “E:\Link test\2h.txt" “E:\Link test\a\2.txt"
(若路徑包含空白,則前後必須加上雙引號"")

說明

Symbolic link 與 Junction 皆為 soft link,也就是說只被當作連結來用。
Hard link 則會被當成完全相同的檔案,就算被連結的檔案遭到刪除,hard link 則仍然會保留其內容。

差異

  1. symbolic link 可以連結檔案或資料夾,
    junction 只能連結資料夾,
    hard link 只能連結同硬碟分區的檔案。
  2. soft link 的目的地被刪除或更名後,soft link 就失效了。hard link 不會。
  3. symbolic link 與 junction 的更改時間不會隨被連結資料夾或檔案同步。
    hard link 的更改時間則會隨被連結檔案改變。
  4. symbolic link 與 junction 不會被記入檔案大小及資料夾個數,hard link 則會。
  5. junction 和 hard link 皆不能連結至不同電腦,symbolic link 應該可以。
  6. 對一使用者登入遠端電腦來說,遠端電腦的 symbolic link 會連到使用者自己電腦的相對位置。而 junction 則是連結在遠端電腦的絕對位置。 (不確定是否正確,至少對遠端桌連線來說沒有影響。)
  7. symbolic link 的"內容"有"連結"頁,junction 則無。(雖然兩個的圖示都看的出是連結)
    hard link 外觀上無法與一般檔案區分。

問題及注意

  1. 若直接複製 symbolic link 或 junction,Windows 會將被連結資料夾的內容完整複製。
  2. 若複製的資料夾包含 symbolic link 或 junction,則 Windows 不會複製被連結資料夾或建立 link,只會建立有相同名稱的空資料夾。
  3. 用 Free File Sync 同步有 symbolic link 或 junction 的資料夾時,可以選擇排除、複製連結或複製被連結資料夾內容。
  4. OneDrive 遇到 symbolic link 只會上傳建立時看到的內容,後續的修改不會上傳。
  5. BitTorrent Sync 的作法尚不確定。

其他資料

建立 symbolic links
http://www.howtogeek.com/howto/16226/complete-guide-to-symbolic-links-symlinks-on-windows-or-linux/

Junction 與 symbolic link 在遠端電腦的差異
http://superuser.com/questions/343074/directory-junction-vs-directory-symbolic-link

Hard link and Junctions
http://msdn.microsoft.com/en-us/library/windows/desktop/aa365006(v=vs.85).aspx

Symbolic links, hard links and junctions
https://www.interworks.com/blogs/jpoehls/2012/06/07/soft-links-hard-links-junctions-oh-my-symlinks-windows-how

38986782

廣告