Linux檔案系統中的連結

來源:互聯網
上載者:User
  • inode

     在討論Linux系統的連結之前,不得不先說下inode。Linux檔案系統中的每一個對象都有唯一的inode索引,每一個inode號和檔案系統的一個對象一一對應,要查看檔案或目錄的inode號可在ls命令中使用-i選項,每個目錄下的.(目前的目錄)和..(上級目錄)都是永久連結。如下面例子:

root@vrlab726-desktop:~/Desktop# pwd
/root/Desktop
root@vrlab726-desktop:~/Desktop# ls -ial
total 8672
6447440 drwxr-xr-x 9 root root 4096 2011-12-14 19:27 .

     目錄/root/Desktop的inode號為6447440,下面再看下/root/Desktop/test/..的inode號:

root@vrlab726-desktop:~/Desktop# cd test
root@vrlab726-desktop:~/Desktop/test# pwd
/root/Desktop/test
root@vrlab726-desktop:~/Desktop/test# ls -ial
total 8
7668672 drwxr-xr-x 2 root root 4096 2011-12-14 19:27 .
6447440 drwxr-xr-x 9 root root 4096 2011-12-14 19:27 ..

      從中可以發現二者的inode號完全一樣,即兩者連結到物理磁碟上的同一個條目。

  • 永久連結

      一個inode號可以和任意多個永久連結對應,當所有永久連結都刪除後,此inode號也將由系統自動刪除,ls -ial命令的第三列即為和當前inode號關聯的永久連結數目。建立永久連結的命令為:

root@vrlab726-desktop:~/Desktop/test# touch file
root@vrlab726-desktop:~/Desktop/test# echo "helloWorld" > file
root@vrlab726-desktop:~/Desktop/test# more file
helloWorld
root@vrlab726-desktop:~/Desktop/test# ln file fileHardLink
root@vrlab726-desktop:~/Desktop/test# ls -ial
total 16
7668672 drwxr-xr-x 2 root root 4096 2011-12-14 20:19 .
6447440 drwxr-xr-x 9 root root 4096 2011-12-14 19:27 ..
7668707 -rw-r--r-- 2 root root 11 2011-12-14 20:19 file
7668707 -rw-r--r-- 2 root root 11 2011-12-14 20:19 fileHardLink

      從中可以看出永久連結都指向了同一個inode條目,因此所佔用的空間相同。然而,Linux系統中的永久連結有兩個限制:1.永久連結只能連結到檔案,而不能連結到檔案夾。儘管.和..是系統建立的連結到目錄的永久連結,但不允許使用者(即使是root賬戶)建立連結到目錄的永久連結。2.永久連結不能跨檔案系統。

  • 軟連結(符號連結)
      實際上,軟連結比永久連結更為常用,符號連結是一種特殊的檔案類型,它只是通過檔案名稱連結到另一個檔案,而不是直接連結到inode。如果連結的目標檔案被刪除了,那麼會導致連結到該目標檔案的所有軟連結斷開,不再可用。建立軟串連的命令如下:
root@vrlab726-desktop:~/Desktop/test# ln -s file fileSoftLink
root@vrlab726-desktop:~/Desktop/test# ls -ial
total 16
7668672 drwxr-xr-x 2 root root 4096 2011-12-14 20:25 .
6447440 drwxr-xr-x 9 root root 4096 2011-12-14 19:27 ..
7668707 -rw-r--r-- 2 root root 11 2011-12-14 20:19 file
7668707 -rw-r--r-- 2 root root 11 2011-12-14 20:19 fileHardLink
7668708 lrwxrwxrwx 1 root root 4 2011-12-14 20:25 fileSoftLink -> file
      可以從兩方面辨別出符號連結,ls -ial的第二列中第一個字母為l;在最後一列中的目標檔案前有->符號。 總結:      永久連結基於inode實現,而軟連結基於名稱(或路徑)實現;永久連結只允許使用者建立連結到檔案的永久連結,而軟連結既可連結到檔案又可連結到目錄;永久連結不允許跨檔案系統(因不同檔案系統中的inode號可能相同),而軟連結由於通過路徑實現,所以可以跨檔案系統。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.