Linux具有為一個文件起多個名字的功能蔓倍,稱為鏈接客蹋。被鏈接的文件可以存放在相同的目錄下,但是必須有不同的文件名匹表,而不用在硬盤上為同樣的數(shù)據(jù)重復(fù)備份门坷。另外,被鏈接的文件也可以有相同的文件名袍镀,但是存放在不同的目錄下默蚌,這樣只要對一個目錄下的該文件進行修改,就可以完成對所有目錄下同名鏈接文件的修改苇羡。對于某個文件的各鏈接文件绸吸,我們可以給它們指定不同的存取權(quán)限,以控制對信息的共享和增強安全性设江。 文件鏈接有兩種形式锦茁,即硬鏈接和符號鏈接。
Ln 命令
ln命令文件處理 ln命令用來為文件創(chuàng)件連接叉存,連接類型分為硬連接和符號連接兩種码俩,默認(rèn)的連接類型是硬連接。如果要創(chuàng)建符號連接必須使用"-s"選項歼捏。 注意:符號鏈接文件不是一個獨立的文件稿存,它的許多屬性依賴于源文件笨篷,所以給符號鏈接文件設(shè)置存取權(quán)限是沒有意義。
硬鏈接
建立硬鏈接時瓣履,在另外的目錄或本目錄中增加目標(biāo)文件的一個目錄項率翅,這樣,一個文件就登記在多個目錄中袖迎。如圖所示的m2.c文件就在目錄mub1和liu中都建立了目錄項安聘。 創(chuàng)建硬鏈接后,己經(jīng)存在的文件的I節(jié)點號(Inode)會被多個目錄文件項使用瓢棒。一個文件的硬鏈接數(shù)可以在目錄的長列表格式的第二列中看到浴韭,無額外鏈接的文件的鏈接數(shù)為l。 在默認(rèn)情況下脯宿,ln命令創(chuàng)建硬鏈接念颈。ln命令會增加鏈接數(shù),rm命令會減少鏈接數(shù)连霉。一個文件除非鏈接數(shù)為0榴芳,否則不會從文件系統(tǒng)中被物理地刪除。 對硬鏈接有如下限制: 不能對目錄文件做硬鏈接跺撼。 不能在不同的文件系統(tǒng)之間做硬鏈接窟感。就是說,鏈接文件和被鏈接文件必須位于同一個文件系統(tǒng)中歉井。
軟鏈接
符號鏈接也稱為軟鏈接柿祈,是將一個路徑名鏈接到一個文件。這些文件是一種特別類型的文件哩至。事實上躏嚎,它只是一個文本文件(如圖中的abc文件),其中包含它提供鏈接的另一個文件的路徑名菩貌,如圖中虛線箭頭所示卢佣。另一個文件是實際包含所有數(shù)據(jù)的文件。所有讀箭阶、寫文件內(nèi)容的命令被用于符號鏈接時虚茶,將沿著鏈接方向前進來訪問實際的文件。
與硬鏈接不同的是仇参,符號鏈接確實是一個新文件嘹叫,當(dāng)然它具有不同的I節(jié)點號;而硬鏈接并沒有建立新文件冈敛。 符號鏈接沒有硬鏈接的限制待笑,可以對目錄文件做符號鏈接,也可以在不同文件系統(tǒng)之間做符號鏈接抓谴。
用ln -s命令建立符號鏈接時暮蹂,源文件最好用絕對路徑名寞缝。這樣可以在任何工作目錄下進行符號鏈接。而當(dāng)源文件用相對路徑時仰泻,如果當(dāng)前的工作路徑與要創(chuàng)建的符號鏈接文件所在路徑不同荆陆,就不能進行鏈接。
- 刪除源文件或目錄集侯,只刪除了數(shù)據(jù)被啼,不會刪除鏈接 一旦以同樣文件名創(chuàng)建了源文件,鏈接將繼續(xù)指向該文件的新數(shù)據(jù)棠枉。
- 在目錄長列表中浓体,符號鏈接作為一種特殊的文件類型顯示出來,其第一個字母是l辈讶。
- 符號鏈接的大小是其鏈接文件的路徑名中的字節(jié)數(shù)命浴。 可以看到符號鏈接名后有一個箭頭指向源文件或目錄。