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 命令對於那些希望瞭解系統中檔案特徵的人來說是一個寶貴的資源。