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