使用Mklink可以創建一個目錄鏈接,從而完美轉移文件/文件夾
MS官方文檔
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/mklink
mklink [/d] | [/h] | [/j]] <Link> <Target>
- /D 創建目錄符號鏈接。默認情況下,mklink會創建文件符號鏈接。
- /H 創建硬鏈接而不是符號鏈接。
- /J 創建目錄連接。
- link 新鏈接路徑
- Target 源文件/文件夾路徑
目錄鏈接
/D、/J,都是創建文件夾鏈接,區別在於:
1. 創建新鏈接路徑
/D可以是相對路徑,也可以是絕對路徑;/J只是絕對路徑
2. 執行后,剪切/移動新鏈接路徑
/D方式創建的話,只是把目錄鏈接剪切到新地址,源文件夾沒有影響;/J會刪除鏈接路徑下的所有數據,刪除源文件夾下的所有數據,在新地址創建一份鏈接路徑結構的全部數據。
比如:
mklink /D "C:\新建文件夾" "C:\目錄轉移測試",會在C盤創建一個鏈接 “新建文件夾”,打開鏈接文件夾,里面含有 “C:\目錄轉移測試"的所有文件數據。
剪切 “新建文件夾”到D盤,只是把“新建文件夾”鏈接,剪切到了D盤"D:\新建文件夾",C盤的鏈接沒有了,而"C:\目錄轉移測試"數據沒有影響。
mklink /J "C:\新建文件夾" "C:\目錄轉移測試",創建的鏈接與/D是一致的
但剪切 “新建文件夾”到D盤,鏈接“新建文件夾”沒有刪除,但是刪除了鏈接目錄下的所有關聯。同時在D盤創建文件夾"D:\新建文件夾",並將源"C:\目錄轉移測試"下的數據全部剪切過來,只保留源"C:\目錄轉移測試"文件夾。
文件鏈接
/H 是文件的轉移,比如:mklink /h C\1.file D:1.file
只是文件的復制,並沒有創建快捷方式。
常見的異常
1. "當文件已存在時,無法創建該文件。"
原因:mklink只是生成鏈接,所以生成鏈接的地址如果有相同名稱的文件夾,是無法創建成功的。
一般我們使用Mklink時,先把"C:\新建文件夾" 剪切到"D:\新建文件夾".
然后使用 mklink /D "C:\新建文件夾" "D:\新建文件夾",在C盤創建一個新建文件夾的快捷方式
其它的異常,本人沒有遇到就不總結了,可見小伙伴的博客:解決 mklink 使用中的各種坑(硬鏈接,軟鏈接/符號鏈接,目錄鏈接)