Linux的文件管理(三)

一、索引節點:

1indoe表中包含文件系統所有文件列表

 一個節點(索引節點)是在一個表項,包含有關文件的信息(元數據),包含:

 文件類型,權限,UIDGID;鏈接數(指向這個文件名路徑名稱個數);該文件的大小和不同的時間  戳;指向磁盤上文件的數據塊指針;有關文件的其他數據。

2、查看節點編號:#ls -i

wKioL1edTTygADslAAAfqlEXApk420.png-wh_50


3indoe表結構:

wKiom1edTVaCv4TgAAF-VHCYs5M627.png-wh_50

 

原理圖如下:

wKioL1edTXjgnHRiAAB8nqEyp_s145.png-wh_50

wKiom1edTY-A81goAADq1_eMKz4367.png-wh_50

4、節點編號在不同的分區下可以有相同的編號;同一分區下不能夠出現同樣的節點編號。(如:/boot/testdir是兩個分區,但都有同樣的131132節點編號,見下圖:)

wKioL1edTbqQhLGpAAAsHnTfzz0039.png-wh_50

wKioL1edTdTx3wvoAAAJnfu1l8A809.png-wh_50

但在同一分區下如果出現同樣的節點編號,只能是同一個文件(硬鏈接產生指向同一個文件)。如下圖,同一分區內有相同的節點編號,只能是同一個文件,使用硬鏈接指向:

wKiom1edTe7wgn6BAAAlfjxoPpE888.png-wh_50


5、鏈接數:

wKioL1edTgfxIydQAAAW_pJgGl0673.png-wh_50


二、目錄:

  文件引用一個是inode

  人是通過文件名來引用一個文件

  一個目錄是目錄下的文件名和文件inode號之間的映射

Inode table:

  wKiom1edTi3TGUFwAAExEKpocpQ563.png-wh_50

 

三、cprmmvinode

   在CP的命令:分配一個空閒的inode號,在inode表中生成新條目;在目錄中創建一個目錄項,將名稱與inode編號關聯;拷貝數據生成新的文件

 

  rm命令:鏈接數遞減,從而釋放的inode號可以被重用;把數據塊放在空閒列表中;

刪除目錄項,數據實際上不會馬上被刪除,但當另一個文件使用數據塊時將被覆蓋。

 

如果mv命令的目標和源在相同的文件系統,作爲mv命令:

用新的文件名創建對應新的目錄項;刪除舊目錄條目對應的舊的文件名;

不影響inode表(除時間戳)或磁盤上的數據位置:沒有數據被移動;如果目標和源在一個不同的文件系統,mv相當於cprm

 

、硬鏈接和軟鏈接

  硬鏈接: 創建硬鏈接會增加額外的記錄項以引用文件,對應於同一文件系統上一個物理文件,每個          目錄引用相同的inode號,創建時鏈接數遞增。


  刪除文件時:rm命令遞減計數的鏈接,文件要存在,至少有一個鏈接數;

    當鏈接數爲零時,該文件被刪除;

          不能跨越驅動器或分區

  

  使用格式:# ln file [linkname]

 wKiom1edTsGC-UozAAA1Lpbd7c0519.png-wh_50

   

   軟鏈接:一個符號鏈接指向另一個文件,ls -l的顯示鏈接的名稱和引用的文件,一個符號鏈接的         內容是它引用文件的名稱

可以對目錄進行,可以跨分區,指向的是另一個文件的路徑;其大小爲指向的路徑字符串的長度;不增加或減少目標文件inode的引用計數;

           

   使用格式:# ln –s file[linkname]

 

五、查看文件的內容:

  文件可以包含多種類型的數據;檢查文文件類型,然後確定適當的開放命令或應用程序使用。


  格式:file[options] <filename>...Option:

  選項使用:-b列出文件辨識結果時,不顯示文件名稱。

-c詳細顯示指令執行過程,便於排錯或分析程序執行

-f列出文件中文件名的文件類型

-F使用指定分隔符號替換輸出文件名後默認的”:”分隔符

-i輸出mime類型的字符串

-L查看對應軟鏈接對應文件的文件類型

-z嘗試去解讀壓縮文件的內容

--help顯示命令在線幫助

eg:file -b 的使用如下圖:

  wKioL1edTxKySO7AAAAMXageOKk213.png-wh_50 

 

查看一個系統分區下每個分區最多能支持的inode節點號(在Linux文件系統,inode節點編號是不支持拓展的):

命令:# df -i

  wKiom1edTzaip9OiAAA0Yi_3R60384.png-wh_50

 

### 查看用戶:getent  passwd

 更改用戶:sed –I ‘s/chesfer/che/g’/etc/passwd

      sed –I ‘s/chesfer/che/g’ /etc/shadow

      sed –I ‘s/chesfer/che/g’ /etc/gshadow

      sed –I ‘s/chesfer/che/g’ /etc/group

 

watch –n 1 ‘df –I /boot’  一秒掃描一次

for id in {1..19456} do touch/boot/f$id;echo f$id is created;done  指定生成一定數量的空文件(測試消耗inode節點號)

###


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