Windows 能辨識 Linux 的符號連結嗎?
我只是想知道 Windows 系統如何處理符號連結(當通過 Linux
ln -s
在 Windows 本機支持並支持符號連結的文件系統上創建時,例如 NTFS)。我最好的猜測是它不會辨識它們,但我不完全確定。另外,Mac 遇到一個人時會怎麼做?
當我們談論非本地磁碟時,取決於 Windows 版本和伺服器端的配置。
從 Windows Vista 開始,Windows 確實有符號連結的概念,但語義不同。但這裡更重要的問題應該是路徑名,它遵循不同的語法。對於初學者:unixoid 端的單根目錄樹和 Windows 端的幾個驅動器號作為根。
在 unixoid 端,符號連結只是帶有特殊標誌的文本文件。在 Windows 端,底層機制稱為重解析點。這告訴對像管理器將其傳遞給特定的註冊過濾器(此元數據儲存在重新解析點中)。Windows 2000 已經引入了一種類型的重解析點,稱為連接點(大致但不完全是目錄符號連結)。在 Vista 中,他們在遠端驅動器上引入了文件和目錄的符號連結。並且在某種程度上也支持遠端驅動器上的符號連結。
要點是文件系統驅動程序 - 當在本地執行時 - 是否會對 Windows 看到的路徑進行任何調整。在這種情況下,它適用於某些本地/相對符號連結。對於作為目標的絕對路徑,事情將變得困難且不可能推斷出其含義。遠端符號連結連結(到“網路共享”)也是如此。
至於 Mac 方面,我不知道,作為一個單獨的問題可能是有意義的。但只要伺服器端傳達這是一個符號連結的資訊,我認為沒有問題,因為它們都遵循 SUS 語義(與 Windows 不同)。
考慮 Linux 端掛載點:
/dev/sda1 / /dev/sda2 /home /dev/sda3 /var
現在考慮一個
/home/paul/fstab
指向/etc/fstab
. 它們位於兩個不同的捲上,Windows - 如果能夠通過文件系統驅動程序看到它們(確實有效!) - 無法按照/etc/fstab
描述它的方式告訴它們屬於一起。\paul\fstab
因此,即使已翻譯,Windows 也會在文件夾下看到的連結將指向\etc\fstab
,而/dev/sda2
. 如果那個符號連結指向相對路徑,../../etc/fstab
事情就不會改變。**要點:**因此,雖然可以想像,您可以讓它在某些極端情況下工作,但語義和語法在柵欄兩側不同的事實使得您不太可能找到一種實用且通用的方法。