磁盤與目錄的容量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.