什麼是Mac OS X中的別名,符號鏈接和硬鏈接?

OS X文件系統支持多種類型的文件和文件夾快捷鏈接。 通過快捷鏈接可以輕鬆導航到深埋在OS X文件系統中的對象 。 OS X支持三種類型的鏈接:別名,符號鏈接和硬鏈接。

所有這三種類型的鏈接都是原始文件系統對象的快捷方式。 文件系統對象通常是Mac上的文件,但它也可以是文件夾,驅動器,甚至聯網設備。

概述別名,符號鏈接和硬鏈接

快捷鏈接是引用另一個文件對象的小文件。 當系統遇到快捷方式鏈接時,它將讀取包含有關原始對象位置信息的文件,然後繼續打開該對象。 大多數情況下,這種情況發生時,應用程序不會意識到他們遇到了某種類型的鏈接。 所有這三種類型的鏈接都嘗試對使用它們的用戶或應用顯示透明。

這種透明度允許快捷鏈接用於許多不同的目的; 最常見的一種方法是方便地訪問深埋在文件系統中的文件或文件夾。 例如,您可能在您的“文檔”文件夾中創建了一個記帳文件夾,用於存儲銀行對賬單和其他財務信息。 如果你經常使用這個文件夾,你可以為它創建一個別名。 該別名將出現在桌面上。 您不必使用Finder瀏覽多個文件夾級別以訪問記帳文件夾,只需單擊其桌面別名即可。 該別名將帶您訪問該文件夾及其文件,從而縮短漫長的導航過程。

文件系統快捷方式的另一個常見用途是在多個位置使用相同的數據,而不必復制數據或保持數據同步。

讓我們回到我們的會計文件夾示例。 也許你有一個應用程序用於跟踪股票市場挑選,並且應用程序需要將其數據文件存儲在某個預定義的文件夾中。 與其將會計文件夾複製到第二個位置,然後不必將兩個文件夾保持同步,您可以創建別名或符號鏈接,以便股票交易應用程序在其專用文件夾中查看數據,但實際上可以訪問存儲在您的記帳文件夾中的數據。

總結一下:所有這三種類型的快捷方式都是訪問Mac文件系統中的對象而不是其原始位置的方法。 每種類型的快捷方式都有獨特的功能,比其他功能更適合某些用途。 讓我們仔細看看。

別名

這種類型的快捷方式對於Mac來說是最古老的; 它的根源一直回到System 7 。 在Finder級別創建和管理別名,這意味著如果您使用的是Terminal或非Mac應用程序(例如許多UNIX應用程序和實用程序),別名將無法使用。 OS X似乎將別名視為小數據文件,但它不知道如何解釋它們包含的信息。

這似乎是一個缺點,但別名實際上是三種類型快捷鍵中最強大的。 對於Mac用戶和應用程序,別名也是最通用的快捷方式。

為對象創建別名時,系統會創建一個小型數據文件,其中包含對象的當前路徑以及對象的inode名稱。 每個對象的inode名稱都是一串很長的數字,與您給該對象的名稱無關,並且保證它是Mac使用的任何音量或驅動器所獨有的。

創建別名文件後,您可以將其移至Mac文件系統中的任何位置,並且仍會指向原始對象。 您可以根據需要多次移動別名,並且它仍會連接到原始對象。 這非常聰明,但別名使概念更進一步。

除了移動別名之外,您還可以將原始項目移動到Mac文件系統的任何位置; 該別名仍然能夠找到該文件。 別名可以執行這個看似魔術的技巧,因為它們包含原始項目的inode名稱。 由於每個項目的inode名稱都是唯一的,因此系統始終可以找到原始文件,無論您將其重新定位在何處。

該過程如下工作:當您訪問別名時,系統檢查以查看原始項目是否位於存儲在別名文件中的路徑名中。 如果是,那麼系統會訪問它,就是這樣。 如果對像已被移動,系統將搜索與存儲在別名文件中的文件具有相同索引節點名稱的文件。 一旦找到匹配的inode名稱,系統就會連接到該對象。

符號鏈接

這種類型的快捷方式是UNIX和Linux文件系統的一部分。 由於OS X構建在UNIX之上,因此它完全支持符號鏈接 。 符號鏈接與別名相似,因為它們是包含原始對象路徑名的小文件。 但與別名不同,符號鏈接不包含對象的inode名稱。 如果將對象移動到其他位置,符號鏈接將被打破,系統將無法找到該對象。

這看起來像是一個弱點,但它也是一種力量。 由於符號鏈接通過其路徑名查找對象,因此如果用另一個具有相同名稱且位於相同位置的對象替換對象,則符號鏈接將繼續工作。 這使得符號鏈接對於版本控制來說很自然。 例如,您可以為名為MyTextFile的文本文件創建一個簡單的版本控制系統。 您可以使用附加的數字或日期保存舊版本的文件,例如MyTextFile2,並將當前版本的文件保存為MyTextFile。

硬鏈接

像符號鏈接一樣, 硬鏈接是底層UNIX文件系統的一部分。 硬鏈接是小文件,與別名一樣,包含原始項目的inode名稱。 但與別名和符號鏈接不同,硬鏈接不包含原始對象的路徑名稱。 當您希望單個文件對像出現在多個位置時,通常會使用硬鏈接。 與別名和符號鏈接不同,您不能先刪除文件系統中的原始硬鏈接對象,也不能先刪除所有硬鏈接。

參考和進一步閱讀