jasmine214--love

          只有當你的內心總是充滿快樂、美好的愿望和寧靜時,你才能擁有強壯的體魄和明朗、快樂或者寧靜的面容。
          posts - 731, comments - 60, trackbacks - 0, articles - 0

          LINUX的文件系統(鏈接文件)

          Posted on 2011-01-06 11:43 幻海藍夢 閱讀(1344) 評論(0)  編輯  收藏 所屬分類: Linux
          2.鏈接文件
               Linux具有為一個文件起多個名字的功能,稱為鏈接。被鏈接的文件可以存放在相同的或不同的目錄下。如果在同一目錄下,二者必須有不同的文件名,而不用 在硬盤上為同樣的數據重復備份;如果在不同的目錄下,那么被鏈接的文件可以與原文件同名,只要對一個目錄下的該文件進行修改,就可以完成對所有目錄下同名 鏈接文件的修改。對于某文件的各個鏈接文件,我們可以給它們指定不同的存取權限,以控制對信息的共享和增強安全性。

               文件鏈接分為硬鏈接和符號鏈接兩種形式。
               (1) 硬鏈接
               建立硬鏈接時,是在另外的目錄或本目錄中增加目標文件的一個目錄項,這樣,一個文件就登記在多個目錄中。圖3中所示的m2.c文件就在目錄mub1和liu中都建立了目錄項。


          圖3 文件鏈接

               創建硬鏈接后,已經存在的文件的I節點號(inode)會被多個目錄文件項使用。一個文件的硬鏈接數可以在目錄的長列表格式的第二列中看到,無額外鏈接的文件的鏈接數為1。

               ln命令用來創建鏈接。默認情況下,ln命令創建硬鏈接。ln命令會增加鏈接數,rm命令會減少鏈接數。一個文件除非鏈接數為0,否則不會物理地從文件系統中被刪除。

               對硬鏈接有如下限制:
               ◆不能對目錄文件做硬鏈接。
               ◆不能在不同的文件系統之間做硬鏈接。也就是說,鏈接文件和被鏈接文件必須位于同一個文件系統中。

               (2)符號鏈接
               符號鏈接也稱軟鏈接,是將一個路徑名鏈接到一個文件。這些文件是一種特別類型的文件。事實上,它只是一個小文本文件(如圖3中的abc文件),其中包含它 所鏈接的目標文件的絕對路徑名,如圖3中虛線箭頭所示。被鏈接文件是實際上包含所有數據的文件。所有讀寫文件的命令,當它們涉及符號鏈接文件時,將沿著鏈 接方向前進,找到實際的文件。

               和硬鏈接不同的是,符號鏈接確實是一個新文件,它具有與目標文件不同的I節點號;而硬鏈接并沒有建立新文件。

               符號鏈接沒有硬鏈接的限制,可以對目錄文件做符號鏈接,也可以在不同文件系統之間做符號鏈接。

               用“ln -s”命令建立符號鏈接時,最好源文件用絕對路徑名,這樣可以在任何工作目錄下進行符號鏈接。當源文件用相對路徑時,如果當前的工作路徑和你要創建的符號鏈接文件所在路徑不同時,就不能進行鏈接。

               請注意,符號鏈接與源文件或目錄之間的區別:
               ◆刪除源文件或目錄時,只刪除了數據,不會刪除鏈接。一旦以同樣文件名創建了源文件,鏈接將繼續指向該文件的新數據。
               ◆在目錄長列表中,符號鏈接作為一種特殊的文件類型顯示出來,其第一個字母是l。
               ◆符號鏈接的大小是其鏈接文件的路徑名中的字節數。
               ◆當用“ls -l”命令列出文件時,可以看到符號鏈接名后有一個箭頭指向源文件或目錄,例如:lrwxrwxrwx ... 14 Jun 20 10:20 /etc/motd->/original_file

               上面代碼中,表示“文件大小”的數字“14”恰好表示源文件名“/original_file”由14個字符構成。

               ln命令的一般格式:
               ln [選項] 源文件 [目標文件]

               鏈接的對象可以是文件,也可以是目錄。如果鏈接指向目錄,用戶就可以利用該鏈接直接進入被鏈接的目錄,而不用給出到達該目錄的一長串路徑。這樣,即使刪除這個鏈接,也不會破壞原來的目錄。

               選項-s表示建立符號鏈接,而不是硬鏈接。

               注意,符號鏈接文件不是一個獨立的文件,它的許多屬性依賴于原文件,所以給一個符號鏈接文件設置存取權限是沒有意義的。

               (3)示例
               ◆將目錄/home/mengqc/mub1下的文件m2.c鏈接到目錄/home/liu下的文件a2.c:

          $ cd  /home/mengqc

          $ ln mub1/m2.c /home/liu/a2.c

               在執行ln命令之前,目錄/home/liu中不存在a2.c文件。執行ln之后,在/home/liu目錄中才有a2.c這一項,表明m2.c和a2.c已經鏈接起來。注意,二者在物理上是同一個文件。利用“ls -l”命令可以看到鏈接數的變化。

               ◆在目錄/home/liu下建立一個符號鏈接文件abc,使它指向目錄/home/mengqc/mub1:
               $ ln -s /home/mengqc/mub1 /home/liu/abc

               執行該命令后,/home/mengqc/mub1代表的路徑將存放在名為/home/liu/abc的文件中。

          原文:http://hi.baidu.com/%C4%F4%D3%C22010/blog/item/f36abe1e749d2b64f624e4ae.html

          主站蜘蛛池模板: 绿春县| 柞水县| 天等县| 高平市| 城市| 仙居县| 万山特区| 利津县| 华容县| 九龙坡区| 伊宁县| 清水县| 东城区| 镇赉县| 大宁县| 准格尔旗| 明水县| 怀仁县| 嘉义县| 渭南市| 郯城县| 文化| 鲁甸县| 龙川县| 宁河县| 信宜市| 柳河县| 巴东县| 镇沅| 辽宁省| 两当县| 翼城县| 上高县| 汕尾市| 沾益县| 拉萨市| 佳木斯市| 上饶县| 南平市| 卫辉市| 祁门县|