文件系統結構以及軟鏈接和硬鏈接的區別


文件系統結構

   /boot:引導文件存放目錄,內核文件(vmlinuz)、引導加載器(bootloader, grub)都存放於此目錄
/bin:供所有用戶使用的基本命令;不能關聯至獨立分區,OS啓動即會用到的程序
/sbin:管理類的基本命令;不能關聯至獨立分區,OS啓動即會用到的程序
/lib:啓動時程序依賴的基本共享庫文件以及內核模塊文件(/lib/modules)    
/lib64:專用於x86_64系統上的輔助共享庫文件存放位置
/etc:配置文件目錄

   /home/USERNAME:普通用戶家目錄
/root:管理員的家目錄
/media:便攜式移動設備掛載點
   /mnt:臨時文件系統掛載點
/dev:設備文件及特殊文件存儲位置
         b: block device,隨機訪問
         c: character device,線性訪問
/opt:第三方應用程序的安裝位置
/srv:系統上運行的服務用到的數據
/tmp:臨時文件存儲位置
   /usr: universal shared, read-only data
         bin: 保證系統擁有完整功能而提供的應用程序sbin:
         lib:32位使用
         lib64:只存在64位系統
         include: C程序的頭文件(header files)
         share:結構化獨立的數據,例如doc, man等
         local:第三方應用程序的安裝位置bin, sbin, lib, lib64, etc, share

/var: variable data files cache: 應用程序緩存數據目錄

         lib: 應用程序狀態信息數據 local:專用於爲/usr/local下的應用程序存儲可變數據;

         lock: 鎖文件

         log: 日誌目錄及文件

         opt: 專用於爲/opt下的應用程序存儲可變數據;

         run: 運行中的進程相關數據,通常用於存儲進程pid文件

         spool: 應用程序數據池

         tmp: 保存系統兩次重啓之間產生的臨時數據

   /proc: 用於輸出內核與進程信息相關的虛擬文件系統

   /sys:用於輸出當前系統上硬件設備相關信息虛擬文件系統

   /selinux: security enhanced Linux,selinux相關的安全策 略等信息的存儲位置


硬鏈接和軟鏈接的區別
1.原理上:
  硬鏈接(hard link):
    文件A是文件B的硬鏈接,則A的目錄項中的inode節點號與B的目錄項中的inode節點號相同,即一個inode節點對應兩個不同的文件名,兩個文件名指向同一個文件,A和B對文件系統來說是完全平等的。如果刪除了其中一個,對另外一個沒有影響。每增加一個文件名,inode節點上的鏈接數增加一,每刪除一個對應的文件名,inode節點上的鏈接數減一,直到爲0,inode節點和對應的數據塊被回收。
   注:文件和文件名是不同的東西,rm A刪除的只是A這個文件名,而A對應的數據塊(文件)只有在inode節點鏈接數減少爲0的時候纔會被系統回收。
  軟鏈接(soft link):
  A是B的軟鏈接(A和B都是文件名),A的目錄項中的inode節點號與B的目錄項中的inode節點號不相同,A和B指向的是兩個不同的inode,繼而指向兩塊不同的數據塊。但是A的數據塊中存放的只是B的路徑名(可以根據這個找到B的目錄項)。A和B之間是“主從”關係,如果B被刪除了,A仍然存在(因爲兩個是不同的文件),但指向的是一個無效的鏈接。

2.使用限制上:
 硬鏈接:
 a:不能對目錄創建硬鏈接,原因有幾種,最重要的是:文件系統不能存在鏈接環(目錄創建時的”..”除外,這個系統可以識別出來),存在環的後果會導致例如文件遍歷等操作的混亂(du,pwd等命令的運作原理就是基於文件硬鏈接,順便一提,ls -l結果的第二列也是文件的硬鏈接數,即inode節點的鏈接數)
 b:不能對不同的文件系統創建硬鏈接,即兩個文件名要在相同的文件系統下。
 c:不能對不存在的文件創建硬鏈接,由原理即可知原因。

 軟鏈接:
 a.可以對目錄創建軟鏈接,遍歷操作會忽略目錄的軟鏈接。
 b:可以跨文件系統
 c:可以對不存在的文件創建軟鏈接,因爲放的只是一個字符串,至於這個字符串是不是對於一個實際的文件,就是另外一回事了

3.命令
  硬鏈接:ln 源文件名 鏈接名

  軟鏈接:ln -s 源文件名 鏈接名
  硬鏈接和軟鏈接的作用

  硬鏈接:
  硬連接的作用是允許一個文件擁有多個有效路徑名,這樣用戶就可以建立硬連接到重要文件,以防止“誤刪”的功能。只刪除一個連接並不影響節點本身和其它的連接,只有當最後一個連接被刪除後,文件的數據塊及目錄的連接纔會被釋放。也就是說,文件真正刪除的條件是與之相關的所有硬連接文件均被刪除。還有如果把鏈接名創建爲一個以.開頭的隱藏文件,還能很好的隱藏自己的隱私。

  軟鏈接:
  鏈接又稱之爲符號連接(Symbolic Link)。軟鏈接文件類似於Windows的快捷方式。它實際上是一個特殊的文件。在符號連接中,文件實際上是一個文本文件,其中包含的有另一文件的位置信息。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章