入門教程-Linux中比ls命令更好的8個stat命令示例
在Linux中,似乎總有一種巧妙的方法來完成任務。對于任何任務,總是有多個命令行實用程序以更好的方式執行它。Linux stat命令是一個命令行工具,用于顯示關于文件的詳細信息。在本指南中,我們將重點介紹Linux中的8個stat命令用法。這適用于所有Linux發行版。
Linux stat命令
我們可以將stat命令看作是ls -l命令的更好版本。雖然-l標志提供了有關文件的更多詳細信息,例如文件所有權和權限,但stat命令更深入明了,并提供了有關文件的豐富信息。
Linux stat命令的語法如下所示:
$ stat [選項] 文件名
1、不帶參數的Stat命令
stat命令以最簡單的形式(不帶任何參數)顯示默認輸出。這包括文件大小和類型、設備類型、inode編號、UID、GID、鏈接數量和文件的訪問/修改日期。
例如,要查看當前主目錄下文件的詳細信息,執行:
- linuxmi@linuxmi:~/www.linuxmi.com$ stat www.linuxmi.com.py
我們介紹下輸出的具體含義:
- 文件:顯示文件名。
- 大?。何募笮?,以字節為單位。
- 塊:分配給文件的塊數。
- IO塊:這是每個塊的字節大小。
- 設備:設備編號,十六進制或十進制格式。
- Inode:這是文件的索引節點號。
- 鏈接:與文件關聯的硬鏈接數。
- 訪問權限:符號或數字格式的文件權限。
- Uid:所有者的用戶ID和名稱。
- Gid:群組ID和所有者名稱。
- 上下文:SeLinux安全上下文
- 文件類型:顯示文件的類型(常規文件,符號鏈接等)。
- 訪問:顯示上次訪問文件的時間。
- 修改:顯示上次更改文件內容的時間。
- 更改:顯示文件元數據(例如權限和所有權)上次更改的時間。
2、查看多個文件信息
通過依次指定命令行上的文件,您可以查看關于多個文件的詳細報告,如下所示。
- linuxmi@linuxmi:~/www.linuxmi.com$ stat linuxmi.cpp linuxmi.py
3、顯示文件系統狀態
可以使用-f選項檢查文件所在的文件系統狀態,如下所示。這給出了塊大小、總內存和可用內存,僅舉幾個屬性。
- linuxmi@linuxmi:~/www.linuxmi.com$ stat -f /home
4、以簡潔的形式顯示信息
t選項用于以簡潔的格式顯示信息,如下所示:
- linuxmi@linuxmi:~/www.linuxmi.com$ stat -t linuxmi.cpp
5、啟用符號鏈接的跟隨
通常,如果在符號鏈接上運行stat命令,它將僅為您提供有關鏈接的信息,而不會提供鏈接指向的文件。以/usr/share/zoneinfo/America/Cayman符號鏈接為例。
- linuxmi@linuxmi:~/www.linuxmi.com$ stat /usr/share/zoneinfo/America/Cayman
在上面的示例中,符號鏈接/usr/share/zoneinfo/America/Cayman 指向 -> Panama。符號鏈接只有6個字節。
要獲取有關鏈接指向的文件的信息,請使用-L選項(也稱為取消引用選項)。
- linuxmi@linuxmi:~/www.linuxmi.com$ stat -L /usr/share/zoneinfo/America/Cayman
現在,這將顯示有關文件而不是鏈接的信息,即使輸出表明它是鏈接。這是因為我們通過stat命令將其作為參數傳遞。
6、格式排序
從前面的示例中,我們已經看到stat命令在終端上打印出一系列信息。如果需要特定信息,可以使用格式序列來自定義輸出,以準確提供所需內容并保留其他詳細信息。
用于自定義輸出的常用表達式包括–printf 或–format選項
例如,要僅顯示文件的索引節點,請使用%i格式序列,如下所示。該\n操作打印新的生產線。
- linuxmi@linuxmi:~/www.linuxmi.com$ stat --printf='%i\n' linuxmi.cpp
要顯示訪問權限和uid(用戶ID),請使用%a和%u格式序列。
- linuxmi@linuxmi:~/www.linuxmi.com$ stat --printf='%a:%u\n' linuxmi.cpp
該-format選項打印出一個新行,而不需要額外的操作。
- linuxmi@linuxmi:~/www.linuxmi.com$ stat --format='%a:%F' linuxmi.cpp
以下是您可以使用的格式序列的完整列表:
- %a 以八進制格式顯示訪問權限。
- %A 以易于閱讀的格式顯示訪問權限。
- %b 這是分配的塊數(請參見%B)。
- %B 由%b報告的每個塊的字節大小。
- %C 顯示SELinux安全上下文字符串。
- %d 以十進制格式顯示設備編號。
- %D 十六進制格式的設備號。
- %f 以十六進制顯示原始模式。
- %F 顯示文件類型。
- %g 打印所有者的組ID。
- %G 打印所有者的組名。
- %h 顯示硬鏈接數。
- %i 打印出索引節點號。
- %m 打印安裝點。
- %n 顯示文件的文件名
- %N 顯示帶符號引用的文件名,如果使用符號鏈接則取消引用
- %o 打印最佳I/O傳輸大小提示。
- %s 總大?。ㄒ宰止潪閱挝唬?/li>
- %t 主要設備類型(十六進制),用于字符/塊設備特殊文件
- %T 次要設備類型(十六進制),用于字符/塊設備特殊文件
- %u 顯示所有者的用戶ID。
- %U 打印所有者的用戶名。
- %w 顯示文件的產生時間,易于閱讀;–如果未知。
- %W 打印文件誕生的時間,距離紀元后的秒數;如果未知,則為0。
- %x 上次訪問的時間,易于我們理解的格式。
- %X 上次訪問的時間,距離紀元以來的秒數。
- %y 顯示上次修改的最后時間,便于閱讀。
- %Y 打印上次修改的時間,距離紀元以來的秒數。
- %z 這是上次更改的時間,人類可以理解。
- %Z 最后一次更改的時間,距離紀元以來的秒數。
7、獲得有關stat命令的幫助
有關更多命令選項,請使用–help選項和stat命令,如圖所示。
- linuxmi@linuxmi:~/www.linuxmi.com$ stat --help
您還可以訪問stat命令的手冊頁,運行
- linuxmi@linuxmi:~/www.linuxmi.com$ man stat
8、檢查stat版本
最后檢查stat命令的版本,運行命令:
- linuxmi@linuxmi:~/www.linuxmi.com$ stat --version
這就是我們在本指南中為您準備的。如您所見,stat命令超越了ls命令為您提供的功能,非常適合收集有關文件或文件系統的詳細信息。