符号链接
關(guān)于關(guān)于NTFS符號鏈接(Windows平臺),詳見“NTFS符號鏈接”。
符號鏈接(軟鏈接)是一類特殊的文件, 其包含有一條以絕對路徑或者相對路徑的形式指向其它文件或者目錄的引用。[1] 符號鏈接最早在4.2BSD版本中出現(xiàn)(1983年)。今天POSIX操作系統(tǒng)標準、大多數(shù)類Unix系統(tǒng)、Windows Vista、Windows 7都支持符號鏈接。Windows 2000與Windows XP在某種程度上也支持符號鏈接。
符號鏈接的操作是透明的:對符號鏈接文件進行讀寫的程序會表現(xiàn)得直接對目標文件進行操作。某些需要特別處理符號鏈接的程序(如備份程序)可能會識別并直接對其進行操作。
一個符號鏈接文件僅包含有一個文本字符串,其被操作系統(tǒng)解釋為一條指向另一個文件或者目錄的路徑。它是一個獨立文件,其存在并不依賴于目標文件。如果刪除一個符號鏈接,它指向的目標文件不受影響。如果目標文件被移動、重命名或者刪除,任何指向它的符號鏈接仍然存在,但是它們將會指向一個不復(fù)存在的文件。這種情況被有時被稱為被遺棄。
?
目錄
- 1 Unix操作系統(tǒng)
- 1.1 符號鏈接的存儲
- 2 Mac OS操作系統(tǒng)
- 2.1 別名(Aliases)
- 3 Windows操作系統(tǒng)
- 3.1 Windows Vista的符號鏈接
- 3.2 快捷方式
- 3.3 文件夾快捷方式
- 3.4 Cygwin下的符號鏈接
- 4 其它操作系統(tǒng)
- 5 參見
- 6 參考文獻
?
Unix操作系統(tǒng)
在Unix下創(chuàng)建一個符號鏈接,可以在命令行提示符下輸入以下命令:
ln -s 目標 鏈接名稱將上述命令中的“目標”用符號鏈接將要指向的相對路徑或者絕對路徑進行替換。在通常的情況下,目標文件應(yīng)該存在。但是也可以創(chuàng)建一個指向不存在目標的符號鏈接。將“鏈接名稱”用希望的符號鏈接名替換。這條ln命令將會創(chuàng)建一條符號鏈接。當創(chuàng)建完符號鏈接之后,可以將“鏈接名稱”當作“目標”的別名看待。普通的文件操作命令(如cp、rm等)都能直接作用于符號鏈接。用于讀寫文件內(nèi)容的命令將會直接訪問目標文件。
user@userbox:~/one$ cd two user@userbox:~/one/two$ ls a b user@userbox:~/one/two$ cd user@userbox:~$ ln -s ~/one/two three user@userbox:~$ cd three user@userbox:~/three$ ls a b user@userbox:~/three$ cd user@userbox:~$ cat ./one/two/a a user@userbox:~$ echo "c" > ./one/two/a user@userbox:~$ cat ./three/a c在Unix中,符號鏈接的創(chuàng)建使用與創(chuàng)建硬鏈接同樣的命令,但是它們之間的實際行為差別很大。硬鏈接僅僅是一個與文件關(guān)聯(lián)的名字,它不能離開關(guān)聯(lián)文件而獨立存在。當一個硬鏈接被移動、重命名或者刪除時,其余關(guān)聯(lián)到同一文件的硬鏈接不受影響。只有當最后一條指向該文件的硬鏈接被刪除時,該文件內(nèi)容將會消失。與硬鏈接不同,符號鏈接能夠指向目錄。
符號鏈接的存儲
早期符號鏈接的實現(xiàn),采用直接分配磁盤空間來存儲符號鏈接的信息,這種機制與普通文件一致。這種符號鏈接文件里包含有一個指向目標文件的文本形式的引用,以及一個指示自己為符號鏈接的標志。
這樣的存儲方式被證明有些緩慢,并且早一些小型系統(tǒng)上會浪費磁盤空間。一種名為快速符號鏈接的新型存儲方式能夠?qū)⑽谋拘问降逆溄哟鎯υ谟糜诖娣盼募畔⒌拇疟P上的標準數(shù)據(jù)結(jié)構(gòu)之中(inode)。為了表示區(qū)別,原先的符號鏈接存儲方式也被稱作慢速符號鏈接。
Mac OS操作系統(tǒng)
別名(Aliases)
除開Unix系統(tǒng)下的普通符號鏈接之外,Mac OS還能使用別名(aliases)。當目標文件移動到同一磁盤上的其它地方時,別名仍然夠繼續(xù)有效。某些版本的Linux系統(tǒng)也有與別名類似的功能。
Windows操作系統(tǒng)
Windows Vista的符號鏈接
Windows Vista 的符號連接基于 NTFS 文件系統(tǒng)的重解析點功能,具體請參考 NTFS 的相關(guān)介紹。
Windows Vista 使用 mklink 命令(注意這是內(nèi)部命令,而非可執(zhí)行程序)創(chuàng)建符號連接,命令行如下:
mklink [/D | /H | /J] LinkName Target /D 創(chuàng)建目錄符號鏈接(默認為文件符號鏈接) /H 創(chuàng)建硬鏈接 /J 創(chuàng)建目錄連接 LinkName 鏈接名稱 Target 鏈接的目標(根據(jù)命令行參數(shù)不同,可能為文件、目錄或者加載點)快捷方式
快捷方式(shortcut)是一種功能上類似符號鏈接的文件對象,但與符號鏈接有本質(zhì)的不同。快捷方式是普通的文件(擁有擴展名 .lnk),而非符號,因此,快捷方式可以被復(fù)制、移動、更改(某些特殊的快捷方式無法更改所有信息)或刪除。快捷方式可以指向文件、文件夾或其他任何系統(tǒng)中合法的位置(包括控制面板、桌面等)。
如果快捷方式指向可執(zhí)行程序,則可以同時指定啟動的命令行參數(shù)以及啟動位置(對于非可執(zhí)行程序的快捷方式也能指定這些信息,但無意義)。同時,可以為快捷方式單獨選擇圖標(如果沒有選擇圖標,則使用目標的圖標),以方便用戶個性化。
刪除快捷方式完全不會影響被鏈接到的目標。如果刪除了目標,則會使快捷方式失效。由于快捷方式可以使用相對路徑或絕對路徑,因此移動快捷方式或目標可能導(dǎo)致快捷方式失效,也可能不會有影響。在某些Windows操作系統(tǒng)(包括但不限于Windows XP、Windows Vista)中,操作系統(tǒng)會對文件路徑的改變作一定程度的自動處理,使得快捷方式將在大多數(shù)情況下能保持有效:當快捷方式指向的目標失效而目標被移動過時,系統(tǒng)將自動修改快捷方式的目標到新的位置。
文件夾快捷方式
類似普通快捷方式,但只能指向文件夾并且對用戶更為透明。文件夾快捷方式(Folder Shortcut)的實質(zhì)為一個帶有只讀屬性的普通文件夾,里面含有desktop.ini和target.lnk兩個隱藏文件:target.lnk為指向目標文件夾的普通快捷方式;由desktop.ini定義該文件夾為“文件夾快捷方式”,其內(nèi)容為:
[.ShellClassInfo] CLSID2={0AFACED1-E828-11D1-9187-B532F1E9575D}文件夾快捷方式可以在 Windows 外殼中被創(chuàng)建和使用。 同樣,刪除文件夾快捷方式不會影響被鏈接到的目標;刪除目標則會使文件夾快捷方式失效。
參見
- en:Unix下的ln命令
參考文獻
轉(zhuǎn)載于:https://www.cnblogs.com/soaringEveryday/p/3520453.html
總結(jié)
- 上一篇: 公积金利息利率是多少
- 下一篇: 如何使用安装光盘为本机创建yum rep