Linux stat 命令及示例


Linux 中的 'stat' 命令是一個強大的工具,用於檢索有關檔案和檔案系統的資訊。它提供了有關特定檔案或目錄特徵的大量詳細資訊,包括檔案許可權、時間戳、所有權和 i 節點號。此命令具有各種應用,從檔案故障排除到安全分析。在本文中,我們將深入探討 Linux 'stat' 命令,探索其選項和功能,並提供如何在實際場景中使用它的實用示例。透過深入瞭解 'stat' 命令,Linux 使用者可以更好地瞭解系統上檔案和目錄的屬性和狀態。

以下是一些顯示 stat 命令用法的示例。

  • "stat" 命令是顯示有關 Linux 中特定檔案或目錄資訊的必要工具。"stat /var/log/syslog" 命令用於深入瞭解 "/var/log/syslog" 檔案(通常是包含有關各種系統事件和程序資訊的日誌檔案)的屬性和特性。"stat" 命令提供了大量資訊,包括檔案的 i 節點號、檔案型別、許可權、時間戳、大小和所有權,這在故障排除、分析和安全等各種場景中都非常有用。透過對 "/var/log/syslog" 檔案使用 "stat" 命令,Linux 使用者可以深入瞭解其系統的狀態和行為。

輸入

$ stat /var/log/syslog

輸出

"stat /var/log/syslog" 命令的輸出將根據具體的系統和檔案而有所不同,但通常會顯示類似以下資訊:

File: /var/log/syslog
Size: 602244        Blocks: 1200       IO Block: 4096   regular file
Device: 803h/2051d  Inode: 175419      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 0/ root)   Gid: ( 0/ root)
Access: 2022-11-15 11:45:41.000000000 -0500
Modify: 2022-11-15 11:45:41.000000000 -0500
Change: 2022-11-15 11:45:41.000000000 -0500
 Birth: -

這些資訊包括:

  • 檔案 - 查詢檔案的名稱和路徑

  • 大小 - 檔案的大小(以位元組為單位)

  • - 用於儲存檔案所用的塊數

  • IO 塊 - 每個塊的大小(以位元組為單位)

  • 裝置 - 包含該檔案的磁碟裝置號

  • i 節點 - 檔案的 i 節點號

  • 連結 - 到檔案的連結數

  • 訪問 - 檔案的訪問許可權以及檔案的所有者和組

  • 修改 - 檔案上次修改的時間

  • 更改 - 檔案的元資料(許可權、所有權等)上次更改的時間

  • 建立 - 檔案建立時間(如果可用)

  • Linux 命令 "stat -f /var/log/syslog" 顯示有關 "/var/log/syslog" 檔案所在檔案系統的資訊。"-f" 選項專門關注檔案系統,並提供諸如塊大小、總塊數、空閒塊數和可用塊數等詳細資訊。此資訊可用於分析磁碟空間、解決儲存問題以及監視檔案系統的執行狀況。在 "/var/log/syslog" 檔案上執行 "stat -f" 命令可提供有關其所在 Linux 系統中檔案系統狀態和屬性的有價值資訊。

輸入

$ stat -f /var/log/syslog

輸出

"stat -f /var/log/syslog" 命令的輸出將顯示有關 "/var/log/syslog" 檔案所在的磁碟檔案系統的資訊。輸出可能類似於:

File: "/var/log/syslog"
Filesystem: ext4
Block size: 4096
Blocks: Total: 12658517
Free: 10106288
Available: 9996658
  • 在 Linux 中使用 "stat -f /" 命令可以瞭解根檔案系統的執行狀況和屬性。透過使用 "-f" 選項(代表“檔案系統”),將顯示資訊,包括塊大小、總塊數、空閒塊數和可用塊數。此資訊對於分析磁碟使用情況、解決磁碟空間問題以及關注檔案系統的整體執行狀況至關重要。透過執行此命令,Linux 使用者可以深入瞭解其根檔案系統的狀態。

輸入

$ stat -f /

輸出

File: "/"
Filesystem: ext4
Block size: 4096
Blocks: Total: 12658517  
Free: 10106288  
Available: 9996658
Inodes: Total: 21544960   
Free: 21005263

自定義格式以顯示資訊

  • Linux 中的 'stat' 命令提供了自定義輸出格式的選項。這允許使用者僅顯示他們需要的資訊,而不是可能包含不必要詳細資訊的預設格式。要指定自定義格式,可以使用 '-c' 標誌後跟所需的格式字串。'--printf' 選項是自定義輸出格式的另一種方法,它允許使用反斜槓轉義序列並提供對換行的更多控制。透過使用 '--printf' 幷包含 '
    ' 在格式字串中,使用者可以精確地以所需的格式顯示所需的資訊。

$ stat --printf='%U
%G
%C
%z
' /var/log/secure

上一個示例中檔案格式序列的含義:

  • %U – 檔案所有者的使用者名稱

  • %G – 檔案的組名

  • %C – 檔案的 i 節點號

  • %z – 檔案自紀元以來的修改時間(以秒為單位)

  • 以下是如何在實踐中應用檔案系統接受的格式序列的示例。

$ stat --printf='%n
%a
%b
' /

上一個示例中檔案格式序列的含義:

  • %n – 顯示檔名

  • %a – 顯示非管理員使用者可用的空閒塊數

  • %b – 顯示檔案系統中的資料塊總數。

  • 可以使用 "-t" 選項以簡潔的方式呈現資訊。

$ stat -t /var/log/syslog

給定示例的輸出如下:

  File: '/var/log/syslog'
  Size: 127952       Blocks: 272        IO Block: 4096   regular file
Device: 802h/2050d  Inode: 2185068     Links: 1
Access: (0644/-rw-r--r--)  Uid: (  0/    root)   Gid: (  0/    root)
Access: 2022-12-19 20:13:13.645865908 +0000
Modify: 2022-12-19 19:32:22.797664688 +0000
Change: 2022-12-19 19:32:22.797664688 +0000
 Birth: -
  • 值得一提的是,你的 shell 可能擁有自己的 stat 命令實現,有關支援選項的更多資訊,請參閱 shell 的文件。如果你正在尋找所有已接受的輸出格式序列的完整列表,只需參考 stat 命令的手冊頁。

$ man stat 

Linux 中的 "man stat" 命令是瞭解 stat 命令的極好資源。透過訪問手冊頁,使用者可以深入瞭解檔案的各個方面,例如其大小、所有權、可訪問性和時間相關資訊。手冊頁提供了使用 stat 命令時可用選項的深入瞭解,以及清晰的示例和解釋以幫助使用它。

結論

簡而言之,Linux stat 命令是收集有關檔案屬性資訊的有力方法。它擁有各種選項,使使用者能夠檢索諸如檔案大小、所有者、訪問許可權和時間相關資訊等資訊。stat 命令的手冊頁是有關如何使用它的豐富資訊來源,它提供了示例和對提供資訊的清晰解釋。還必須記住,某些 shell 可能有其自己的 stat 命令變體,因此建議參考其各自的文件以獲取更多詳細資訊。總之,Linux stat 命令對於那些希望瞭解系統中檔案特徵的人來說是一個寶貴的資源。

更新於:2023年7月28日

瀏覽量:382

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告