為什麼 Windows 的更高版本繼續使用快捷方式檔案而不是符號連結?

為什麼 Windows 的更高版本繼續使用快捷方式檔案而不是符號連結?

Windows XP 及更高版本支援符號連結。然而,Windows 繼續使用快捷方式檔案(其本質上將連結檔案的位置儲存為文字)。為什麼?

答案1

我猜有幾個原因

  1. 您可以針對相同 EXE 的多個不同捷徑儲存不同層級的相容性,因為它們由 shell(而不是檔案系統)解釋。
  2. 某些快捷方式連結實際上並不存在於檔案系統上。其中一些只是對 GUID 的引用,或由 shell 解釋的特殊字串。
  3. 您不能在符號連結中包含開關。當然,您可以指向 EXE,但您不能告訴該 EXE 任何進一步的參數。
  4. 您無法為符號連結選擇圖示。
  5. 您無法選擇在符號連結中使用哪個目錄。
  6. 快捷方式文件不僅必須指向文件,還可以是超連結或協議連結(對於 .URL 文件)。
  7. LNK 檔案可以存在於任何檔案系統上。符號連結由檔案系統本身處理,對於 Windows,是 NTFS。
  8. 沒有真正需要更換它們。它們可以工作,它們很小,如果需要添加比上面列出的更多的功能,它們可以在未來擴大規模。
  9. 建立符號連結需要管理權限(有充分的理由 - 否則只需很少的工作就可以將無辜檔案重定向到惡意檔案)

會有比這更多的原因,但我認為這足以讓你開始:) - @grawity 提供了一個鏈接這裡這將為該主題的部分內容提供一些進一步的閱讀。

答案2

符號連結只不過是包裹在極少量檔案系統魔法中的路徑。它可以透過多種方式變得無效(「損壞」),其中大多數涉及一個或多個檔案或目錄被重新命名。由於 Windows 是消費性軟體,因此您可能會在「典型」安裝上執行大量設計非常糟糕的程式。因此,與在伺服器上(理論上)接觸磁碟的每個程式都是已知數量的伺服器相比,這種損壞更難以避免。

快捷方式是不受大多數形式的破損影響因為它們獨立於路徑追蹤目標。這使它們更加用戶友好。它們是專門為消費者設計的,秉持著「只做我的意思,不要打擾我細節」的方針。

現在,您可以使用硬連結(在某種程度上),但硬連結有很多複雜的屬性這使得它們不適合消費者使用。特別是,檔案非常容易獲得新的索引節點號,並且某些備份軟體在遇到硬連結時會相當嚴重地崩潰。前者可以(也許)解決檔案系統隧道(這實際上是快捷方式解決相關問題的方式),但後者是一個更難的問題。

(我可能還應該注意到,透過隧道「解決」硬連結絕對是不平凡的,因為這不僅僅是重新附加「丟失」的元資料的問題。索引節點綁定在磁碟分配方案中,因此您不能隨意合併或在事後重新分配它們,而無需進行大量的跑腿工作。

答案3

我意識到這是一個老問題,但我們仍然受到 Windows 資源管理器以幾乎無法區分和完全誤導的方式顯示快捷方式和符號連結的困擾。

  1. 在顯示圖示的資源管理器視圖中,兩者在左下角附加的方塊中都有一個向右上方的小箭頭,因此在這裡它們的表示方式無法區分。

  2. 在資源管理器樹視圖中,符號連結(目錄)顯示為節點,而捷徑則不顯示。

  3. 右鍵>屬性對話框很混亂。對於符號鏈接,此對話框中沒有提及“鏈接”或“符號鏈接”,事實上,該對話框顯示一個“快捷方式”選項卡,其中包含有關目標類型、目標位置和實際目標路徑的信息。有一個「開始於」欄位(顯示為灰色,且不適用於符號連結)。

同時,對於實際的快捷方式,「常規」標籤顯示「檔案類型」捷徑(.lnk)。並且該對話方塊省略了“共享”選項卡(對於目錄)。

因此,如果所有這些讓您不確定什麼是什麼,您必須求助於命令窗口,其中dir 命令在類型列中清楚地標識帶有“”的符號鏈接,而快捷方式顯示為普通文件,其文件名用“拼字” .lnk”副檔名。

當然,快捷方式的擴展名是「link」的縮寫,這已經是一個問題了,而它們根本不是連結。

簡而言之,Windows 資源管理器可以更好地清楚地識別和區分這兩種截然不同的事物,而且它當然應該停止使用具有誤導性或完全錯誤的術語來表示其中一個或另一個。

相關內容