Linux文件系统中的链接
生活随笔
收集整理的這篇文章主要介紹了
Linux文件系统中的链接
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- 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 testroot@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 fileroot@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.硬鏈接不能跨文件系統。
- 軟鏈接(符號鏈接)
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號可能相同),而軟鏈接由于通過路徑實現,所以可以跨文件系統。
轉載于:https://www.cnblogs.com/sujz/archive/2011/12/14/2288050.html
總結
以上是生活随笔為你收集整理的Linux文件系统中的链接的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MTK camera tuning学习中
- 下一篇: linux-tar命令详解