日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Windows下mklink使用

發布時間:2023/12/20 windows 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows下mklink使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

mklink命令

mklink是windows系統下創建符號鏈接和硬鏈接的命令工具,它是一個很好的解決文件系統問題的工具。使用它需要管理員權限

首先,先來介紹下mklink這個命令:

mklink
創建符號鏈接。
mklink [[/D] | [/H] | [/J]] Link Target
/D 創建目錄符號鏈接。默認為文件符號鏈接。
/H 創建硬鏈接而非符號鏈接。
/J 創建目錄聯接。
Link 指定新的符號鏈接名稱。
Target 指定新鏈接引用的路徑(相對或絕對)。

注意:因為powershell不支持mklink命令,所以要在前面加cmd /c表示用cmd來運行該命令,路徑注意引號,可以是相對路徑也可以是絕對路徑。

符號鏈接(Symbolic link)

對文件創建符號鏈接

1 mklink "link" "target"

對文件夾創建符號鏈接

1 mklink /D "link" "target"

符號鏈接連接遠程的路徑

1 mklink /D "D:\link" "\\123.123.0.1\D$\target"

特點

  • 創建鏈接后的圖標和快捷方式很像, 都有一個箭頭的標志
  • 在系統中不占用空間
  • 在文件系統中不是一個單獨的文件
  • 如果源文件被刪除了,鏈接就沒用了
  • 移除源文件不會影響符號鏈接
  • 移除鏈接文件也不會影響源文件
  • win10_x64_build10565上測試不可以右鍵修改圖標和設置管理員運行
  • 文件大小為0字節和不占用空間
  • 文件屬性的創建時間和修改時間都是軟鏈接創建和修改時的時間
  • 文件類型是.SYMLINK
  • 可以在cmd下運行軟鏈接(假如鏈接的是程序, 且運行命令是XXX即可)(win10_x64_build10565上測試通過)

符號鏈接是在文件系統上實現的鏈接,對操作系統上大多數軟件來說是透明的,也就是說,當軟件訪問符號鏈接時,其實際上是在訪問該符號鏈接所指向的文件夾。
創建的符號鏈接顯示的類型是文件夾,實際上相當于是指向其他盤真實的文件夾路徑的快捷方式,符號鏈接本身不占空間。路徑映射的過程對程序來說是透明的,程序對這個符號鏈接的操作實際上是對文件夾的操作,因此程序可以正常運行,所以這和普通的創建快捷方式是不一樣的操作。此外,符號鏈接和目錄聯接是有快捷方式的那個箭頭的。

注意:軟鏈接的創建需要管理員權限,確保cmd是管理員模式。對于文件夾的軟鏈接創建,一定要加上”/D”。通過相對路徑創建的軟鏈接在移動后無法使用,絕對路徑創建的移動后不影響使用。符號鏈接可以直接右鍵刪除,或通過rmdir命令刪除,不會影響原文件,但del命令則會把目標文件刪除。

硬鏈接(Hard link)

對文件創建硬鏈接

1 mklink /H "link" "target"
  • 硬鏈接只能用于文件,不能對文件夾創建硬鏈接,不然會提示“拒絕訪問”
  • 在系統中占用的空間與源文件相同,但在系統中引用的是相同的對象(不是拷貝)
  • 圖標和創建快捷方式的圖標不同(沒有快捷方式的小箭頭)
  • 移除源文件不會影響硬鏈接
  • 移除硬鏈接不會影響源文件
  • 如果源文件被刪除,它的內容依然通過硬鏈接存在
  • 硬鏈接文件的任何更改都會影響到源文件
  • 文件大小, 占用空間, 創建和修改時間跟原原文件一樣
  • 可以在cmd下運行硬連接(假如鏈接的是程序)

通過上述命令就可以創建從“link”路徑到“target”路徑的硬鏈接,例如:在D盤根目錄下新建文本“A.txt”,然后輸入命令如下即可創建到”A.txt”的硬鏈接”B.txt”
在文件資源管理器上看,“B.txt”與“A.txt”占用同樣大小的空間,其實這個數據并不用去理會,硬鏈接相當于給文件的數據多創建了一個“入口”,“A.txt”,“B.txt”指向的是硬盤中的同一塊區域,因此這兩個文件的內容是完全一樣的,編輯任何一個文件都會影響到另一文件,當刪除其中一個文件,只是刪除這個文件其中一個“入口”,要兩個文件都刪除,文件系統才會標志這塊硬盤區域上的文件被刪除。

目錄聯接(創建軟鏈接首選)

對文件夾創建目錄聯接

1 mklink /J "link" "target"

“目錄聯接”只能應用于文件夾,不可用于文件。根據網上能找到的資料顯示,對文件夾創建的“目錄聯接”與“符號鏈接”并沒有區別,一樣可以實現軟件數據的遷移。不過貌似這兩者對剪切操作有不一樣的表現。
例如,我現在在D盤創建“文件夾A”,在“文件夾A”里新建A.txt,然后在D盤根目錄創建一個“目錄聯接B”指向這個“文件夾A”,通過這個“目錄聯接B”,我可以訪問到A.txt,接著我對“目錄聯接B”進行剪切操作,剪切到C盤,發現“文件夾A”和“目錄聯接B”還是在D盤,但是打開卻發現A.txt不見了,被剪切到了C盤的“文件夾B”中,也就是說對“目錄聯接”的剪切操作會影響原來的文件。
對于這其中的機制,很神奇。。。感覺“目錄聯接”跟“符號鏈接”有點像,給文件夾里的內容提供一個“入口”即所謂的“聯接點”,剪切操作時會通過這個“聯接點”把內容剪切出來,原來的目錄和“聯接點”雖然沒有變化,但里面的內容被剪切出來了。
而“符號鏈接”的剪切操作僅僅是對這個“符號鏈接”的剪切,并不會透過這個“符號鏈接”把其內容剪切掉。

mklink 硬鏈接和符號鏈接的區別

硬鏈接只能用于文件,不能用于文件夾,而且硬鏈接和目標文件必須在同一個分區或者卷中。硬鏈接的目的是為了給文件創建多個目錄路徑(多個入口),而不像符號鏈接是為了指向某個已有的文件。

假設要給Target. txt文件創建一個硬鏈接,系統下載可以執行以下命令:

mklink/H Link.txt Target.txt

和符號鏈接一樣,硬鏈接中所做的任何修改,都會自動應用到目標文件上。但是硬鏈接具有以下一些不同的地方。

(1)硬鏈接必須引用同一個分區或者卷中的文件,而符號鏈接可以指向不同分區或者共享文件夾上的文件或者文件夾。

(2) 硬鏈接只能引用文件,而符號鏈接可以引用文件或者文件夾。

(3)Windows會自動維護硬鏈接,即使把硬鏈接復制到其他文件夾,硬鏈接和目標都可以繼續訪問。

(4)刪除目標文件,硬鏈接可以繼續保留。只有把目標文件和所有的硬鏈接都刪除,才能把該文件徹底刪除。

(5)如果win7把符號鏈接的目標文件刪除,然后用一個同名文件替換,則符號鏈接會指向新的目標文件;而把硬鏈接的目標文件刪除’再用同名文件替換,則硬鏈接還是會繼續引用原始文件。

(6)也就是說,硬鏈接和目標文件的地位相等。事實上,原始的目標文件本身也相當于硬鏈接,新建硬鏈接,只是相當于增加一個目錄路後而已。

(7)硬鏈接看上去和真的文件一模一樣(實際上就是真實的文件),不像符號鏈接那樣有一個快捷方式的小箭頭,但是硬鏈接并不會增加磁盤空間的占用。

(8)對硬鏈接進行NTFS權限的修改,會同時影響到目標文件(因為兩者等價),而符號鏈接和目標文件可以設置不同的NTFS權限。

綜上,我們可以將硬鏈接理解成C語言中的指針、空間中的傳送門,文件隨著硬鏈接的創建,等于它有一個“固定”地址,但它對外溝通的通道有多個,只要通道還存在,該文件就不會消失。

mklink /D和/J的區別

目錄符號鏈接和目錄聯接的區別在于:

目錄聯接在創建時會自動引用目標目錄的絕對路徑,而符號鏈接允許相對路徑的引用。

如分別用 mklink /D dira tdir 和 mklink /J dirb tdir 創建 dira、dirb 對相對目錄的 tdir 的符號鏈接和目錄聯接,之后將 dira、dirb 移動到其它目錄下,則訪問 dira 時會提示“位置不可用”,訪問 dirb 時仍然正常指向 tdir;

且win10_x64_build10565的cmd下dir命令查看會發現, dira符號鏈接鏈接到的是相對路徑下的tdir文件(不管是否存在tdir文件), 且文件類型是symlink, dirb目錄聯接則鏈接到絕對(全)路徑下的tdir文件, 且文件類型是junction(可能是系統自動把相對路徑轉換為全路徑)

而分別用 mklink /D dira c:\demo\tdir 和 mklink /J dirb c:\demo\tdir 創建 c:\demo\tdir 的符號鏈接和目錄聯接,再將這兩個目錄鏈接移動到其它目錄下,則 dira 和 dirb 均可正常指向 c:\demo\tdir;

由此可見當創建目錄鏈接時對目標目錄使用絕對路徑,D 和 J 兩個參數實現的目錄鏈接效果是一樣的;

英文原文:

MKLINK /D | /H | /J Link Target

/D Creates a directory symbolic link. Default is a file symbolic link. /H Creates a hard link instead of a symbolic link. /J Creates a Directory Junction.

/D creates a symbolic link, or a soft link.This essentially acts like a shortcut to a folder in prior versions of Windows, except you don’t have to use an actual shortcut.

/H creates a hard link, which points directly to the file.This option can’t be used for folders directly for some reason, you’ll have to use the next option.

/J creates a “Directory Junction”A Directory Junction is actually just a hard link to a directory. This is a feature that existed prior to Vista as well. If you are trying to symlink to a directory using a hard link, then you should use this option.

Understanding Hard vs Soft Links================================Hard Link

A hard link directly points to the file, and acts to the operating system as if it is the file itself. You’ll want to use this option the majority of the time if you are trying to fake an application’s directory.

Soft Link

A soft link is essentially a shortcut to a file or folder – if you are using Windows explorer, you’ll be redirected to the directory if you double-click on a shortcut, it won’t pretend its part of the filesystem. You can still directly reference or open a file with the symlinked path, and it mostly works.


轉載請注明來源,歡迎對文章中的引用來源進行考證,歡迎指出任何有錯誤或不夠清晰的表達。可以郵件至 qasdwasd@qq.com

總結

以上是生活随笔為你收集整理的Windows下mklink使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。