GNU coreutils包中包含的stat命令提供了各種元數(shù)據(jù),包括文件大小、inode位置、訪問(wèn)權(quán)限和SELinux上下文,以及關(guān)于文件和文件系統(tǒng)的創(chuàng)建和修改時(shí)間。這是一種收集信息的便捷方法,通常需要使用多個(gè)不同的命令來(lái)獲取這些信息。
在Linux中安裝stat
在Linux上,你可能已經(jīng)安裝了stat命令,因?yàn)樗呛诵某绦虬囊徊糠?,默認(rèn)情況下通常與Linux發(fā)行版捆綁在一起。
如果沒(méi)有安裝stat,可以使用包管理器安裝coreutils。
或者,你可以下載源代碼編譯coreutils
獲取文件的狀態(tài)
運(yùn)行stat提供一個(gè)關(guān)于特定文件或目錄的易讀的輸出:
$ stat planets.xml
File: planets.xml
Size: 325 Blocks: 8 IO Block: 4096 regular file
Device: fd03h/64771d Inode: 140217 Links: 1
Access: (0664/-rw-rw-r--) Uid: (1000/tux) Gid: (100/users)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2021-08-17 18:26:57.281330711 +1200
Modify: 2021-08-17 18:26:58.738332799 +1200
Change: 2021-08-17 18:26:58.738332799 +1200
Birth: 2021-08-17 18:26:57.281330711 +1200
它可能很容易閱讀,但仍然有很多信息。以下是stat所涵蓋的內(nèi)容:
- File: 文件名
- Size: 以字節(jié)為單位的文件大小
- Blocks: 硬盤(pán)上為此文件保留的塊數(shù)
- IO Block: 文件系統(tǒng)塊的大小
- regular file: 文件類(lèi)型(常規(guī)文件、目錄、文件系統(tǒng))
- Device: 文件所在的設(shè)備
- Inode: 文件所在的索引節(jié)點(diǎn)號(hào)
- Links: 指向該文件的鏈接數(shù)
- Access, UID, GID: 文件權(quán)限、用戶(hù)和組所有者
- Context: SELinux 上下文
- Access, Modify, Change, Birth: 訪問(wèn)、修改、更改狀態(tài)和創(chuàng)建文件的時(shí)間戳
簡(jiǎn)潔輸出
對(duì)于非常了解輸出的人,或者希望使用其他實(shí)用程序(如awk)解析輸出的人,可以使用 --terse(-t)選項(xiàng),該選項(xiàng)可以格式化輸出,而不使用標(biāo)題或換行符。
$ stat --terse planets.xml
planets.xml 325 8 81b4 100977 100 fd03 140217 1 0 0 1629181617 1629181618 1629181618 1629181617 4096 unconfined_u:object_r:user_home_t:s0
選擇自己的格式
你可以使用--printf選項(xiàng)和類(lèi)似于printf的語(yǔ)法定義自己的輸出格式。stat報(bào)告的每個(gè)屬性都有一個(gè)格式序列(%C表示SELinux上下文,%n表示文件名,等等),因此你可以選擇希望在報(bào)告中看到的內(nèi)容。
$ stat --printf="%n\\n%C\\n" planets.xml
planets.xml
unconfined_u:object_r:user_home_t:s0
$ $ stat --printf="Name: %n\\nModified: %y\\n" planets.xml
Name: planets.xml
Modified: 2021-08-17 18:26:58.738332799 +1200
以下是一些常見(jiàn)的格式序列:
- %a 訪問(wèn)權(quán)限
- %F 文件類(lèi)型
- %n 文件名稱(chēng)
- %U 用戶(hù)名稱(chēng)
- %u 用戶(hù)ID
- %g 組 ID
- %w 創(chuàng)建時(shí)間
- %y 修改時(shí)間
詳情大家可以參考stat手冊(cè)或者coreutils手冊(cè)。
文件信息
如果你曾經(jīng)嘗試過(guò)解析ls-l的輸出,那么你會(huì)喜歡stat命令的靈活性。你并不總是需要stat提供的所有默認(rèn)信息,但是當(dāng)你確實(shí)需要部分或全部信息時(shí),該命令是很好用的。無(wú)論你是以默認(rèn)格式讀取其輸出,還是創(chuàng)建自己的查詢(xún),stat命令都可以讓你輕松訪問(wèn)有關(guān)數(shù)據(jù)的數(shù)據(jù)。
-
Linux
+關(guān)注
關(guān)注
87文章
11351瀏覽量
210490 -
命令
+關(guān)注
關(guān)注
5文章
697瀏覽量
22122 -
Stat
+關(guān)注
關(guān)注
0文章
3瀏覽量
7002
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
如何在Arch Linux系統(tǒng)中安裝Cutefish桌面環(huán)境
如何在Linux上安裝和使用Checkmk工具
如何在Linux中安裝stat
![如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b><b class='flag-5'>中</b><b class='flag-5'>安裝</b><b class='flag-5'>stat</b>](https://file.elecfans.com/web2/M00/7D/BB/poYBAGOAgEaAPu0FAACsoJU0CsU744.png)
如何在Linux下安裝字體
如何在 Linux 上安裝 Python
如何在Win下安裝linux的虛擬機(jī)詳細(xì)安裝方法資料概述
如何在Ubuntu桌面環(huán)境上安裝Google Chrome ?
如何在linux服務(wù)器中打開(kāi)端口
如何在Linux中查找斷開(kāi)的符號(hào)鏈接
如何在Linux命令行中運(yùn)行Python腳本
Linux中如何使用Docker安裝MySQL
![<b class='flag-5'>Linux</b><b class='flag-5'>中</b>如何使用Docker<b class='flag-5'>安裝</b>MySQL](https://file1.elecfans.com//web2/M00/82/B7/wKgaomRd9zuAObGWAAG9dyrh1cI818.jpg)
評(píng)論