Linux 文件系統磁盤空間與鏈接文件

磁盤與目錄的容量node

  咱們知道磁盤的總體數據hi在superblock塊中,可是各文件的容量則在inode中記載。安全

  df:列出文件系統的總體磁盤使用量測試

  

  

  因爲df主要讀取的數據幾乎都是針對整個文件系統,所以讀取的範圍主要是在Super block內的信息,因此這個命令顯示結構的速度很是快。在顯示的結果中spa

你須要特別留意的是那個根目錄的剩餘容量,由於咱們全部的數據都是由根目錄衍生出來的。所以當根目錄的剩餘容量剩下0時,那你的系統可能問題就大了。3d

  若是使用-a這個參數時,系統會出現/pro這個掛載點,可是這裏面的東西都是0,沒關係張。/proc的東西都是Linux系統所需加載的系統數據,並且是掛載在內存blog

當中的,因此固然沒有佔任何內存。crontab

   至於/dev/shm/目錄,是利用內存虛擬出來的磁盤空間。因爲是經過內存虛擬出來的磁盤,所以你在這個目錄下面新建任何數據文件時,訪問速度是很是快速的內存

(在內存工做)。不過,因爲是在內存虛擬出來的,所以這個文件系統的大小在每一個主機上都不同,並且新建的東西下次開機就消失了,由於是在內存中。test

  du:評估文件系統的磁盤使用量bfc

  

  du這個命令會直接到文件系統內查找全部的文件數據,默認將全部文件的大小列出來,而後最終的容量會加總一次,若是想要列出

某目錄下的所有數據,加上-S,減小子目錄的計算。

鏈接文件:ln

  Linux下面有兩種鏈接文件:一種是相似Windows的快捷方式功能的文件,可讓你快速鏈接到目標文件;另外一種是經過文件系統的inode

鏈接來產生新文件名,而不是產生新文件,這種稱爲硬鏈接。

  hard link (硬鏈接)

    每一個文件都會佔用一個inode,文件內容由inode的記錄來指定。想要讀取文件,必須通過目錄記錄的文件名來指向到正確的inode號碼才能

  讀取。文件名只與目錄有關,可是文件內容與inode有關。若是有多個文件名對應到同一個inode號碼呢那就是hard link。hard link 是在某個目錄下

  新建一條文件名鏈接到某inode號碼的關聯記錄。

  

  示意圖:

  

  使用hard link最大的好處就是安全,若是將任何一個「文件名」刪除,inode與block都仍是存在。能夠經過另外一個文件名讀取正確的文件數據。不論你

使用哪一個「文件名」來編輯,最終的結果都會寫入到相同的inode與block中。

    hard link限制

      不能跨文件系統

      不能鏈接到目錄

  symbolic link(符號鏈接快捷方式)

    symbolic link就是再建立一個獨立文件,而這個文件會讓數據的讀取指向它鏈接的那個文件的文件名,當源文件刪除以後,symbolic link的文件會

  顯示「沒法打開某文件」。其實是找不到源文件而已。

       建立一個符號鏈接文件到/etc/crontab

  

  從上面結果能夠知道兩個文件指向不一樣的inode號碼,固然就是兩個獨立的文件存在。並且鏈接文件的重要內容就是它會寫上目標文件的「文件名」

  圖示:

  

  1號inode讀取到鏈接文件的內容僅有文件名,根據文件名鏈接到正確的目錄去取得目標文件inode,最終獲得正確數據。若是目標文件被刪除,那麼整個環節

  就沒法進行下去了。由symbolic link建立的文件爲一個獨立的新文件,會佔用掉inode和block。彷佛hard link比較安全,由於即便某個目錄下的關聯數據被刪除

  也沒有關係。不過因爲hard link顯示太多,反而是symbolic link使用普遍。

  ln命令製做鏈接文件

  

  

  /tmp這個目錄是給你們做爲暫存盤用的,因此你會發現,過去咱們在進行測試時都會將數據移動到/tmp下面去練習,所以,沒事的時候能夠將

  /tmp下的怪異數據清一清。

  目錄的鏈接數

    若是在新建目錄時,它默認的鏈接數是多少?「空目錄」裏面至少會有「.」與".."這兩個目錄,例如,新建一個目錄「/tmp/testing」,基本上會有三個

  東西:

    /tmp/testing

    /tmp/testing/.

    /tmp/testing/..

    /tmp/testing與/tmp/testing/.是同樣的,表明/tmp/testing。而/tmp/test/..表明/tmp。因此說當新建一個目錄時,新目錄的鏈接數爲2.而上層目錄的鏈接

    會增長1.

    

相關文章
相關標籤/搜索