Linux文件管理知識彙總

常見的重要目錄的意義

ls -l輸出的意義

  • 第一列:規定了不同的用戶對文件所擁有的權限。其中第一位表示文件的格式,具體爲:
    • -:普通文件,包括純文本文件、二進制文件、各種壓縮文件等。
    • d:目錄,類似 Windows 系統中的文件夾。
    • b:塊設備文件,就是保存大塊數據的設備,比如最常見的硬盤。
    • c:字符設備文件,例如鍵盤、鼠標等。
    • s:套接字文件,通常用在網絡數據連接,可以啓動一個程序開監聽用戶的要求,用戶可以通過套接字進行數據通信。
    • p:管道文件,其主要作用是解決多個程序同時存取一個文件所造成的錯誤。
    • l:鏈接文件,類似 Windows 系統中的快捷方式。
  • 第二列:引用計數,文件的引用計數代表該文件的硬鏈接個數,而目錄的引用計數代表該目錄有多少個一級子目錄。
  • 第三列:所有者,也就是這個文件屬於哪個用戶。默認所有者是文件的建立用戶。
  • 第四列:所屬組,默認所屬組是文件建立用戶的有效組,一般情況下就是建立用戶的所在組。
  • 第五列:大小,默認單位是字節。
  • 第六列:文件修改時間,文件狀態修改時間或文件數據修改時間都會更改這個時間,注意這個時間不是文件的創建時間。
  • 第七列:文件名或目錄名。

文件主要的 3 個時間參數

  • atime:最近訪問時間。只要文件的內容被讀取,訪問時間就會更新。
  • mtime:最近數據修改時間。當文件的內容數據發生改變,此文件的數據修改時間就會跟着相應改變。
  • ctime:最近狀態修改時間。當文件的狀態(如權限或屬性)發生變化,就會相應改變這個時間。

ls時可以添加參數--time=atime/ctime來控制第六行顯示哪個時間。
可以使用touch -d "yyyy-mm-dd HH:mm" <filename>來更改某個時間。

ext 文件系統

ext4 文件系統會把分區主要分爲兩大部分:小部分用於保存文件的 inode信息;剩餘的大部分用於保存 block 信息。

node 的默認大小爲 128 Byte,用來記錄文件的權限(r、w、x)、文件的所有者和屬組、文件的大小、文件的ctime、atime和mtime、文件的數據真正保存的 block 編號。每個文件需要佔用一個 inode。

inode 中是不記錄文件名的,文件名記錄在文件所在目錄的 block 中。

block 的大小可以是 1KB、2KB、4KB,默認爲 4KB。block 用於實際的數據存儲,如果一個 block 放不下數據,則可以佔用多個 block。這多個 block 有可能是連續的,也有可能是分散的。

如果想要讀取文件內容,就必須藉助目錄中記錄的文件名找到該文件的 inode,才能成功找到文件內容所在的 block 塊。

硬鏈接和軟鏈接

軟鏈接:產生一個特殊的文件,該文件用來指向另一個文件,類似於 Windows 系統中給文件創建快捷方式。
硬鏈接:給一個文件的 inode 分配多個文件名,通過任何一個文件名,都可以找到此文件的 inode,從而讀取該文件的數據信息。

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