Linux怎么用stat命令顯示文件
Linux怎么用stat命令顯示文件
在Linux中,沒有文件創(chuàng)建時(shí)間的概念。只有文件的訪問時(shí)間、修改時(shí)間、狀態(tài)改變時(shí)間。也就是說不能知道文件的創(chuàng)建時(shí)間。那么Linux怎么用stat命令顯示文件?下面跟著學(xué)習(xí)啦小編一起去了解下吧。
Linux怎么用stat命令顯示文件
用法:stat [選項(xiàng)]... 文件...
顯示文件或文件系統(tǒng)的狀態(tài)。
-L, --dereference 跟隨鏈接
-f, --file-system 顯示文件系統(tǒng)狀態(tài)而非文件狀態(tài)
-c --format=格式 使用指定輸出格式代替默認(rèn)值,每用一次指定格式換一新行
--printf=格式 類似 --format,但是會(huì)解釋反斜杠轉(zhuǎn)義符,不使用換行作
輸出結(jié)尾。如果您仍希望使用換行,可以在格式中
加入"\n"
-t, --terse 使用簡潔格式輸出
--help 顯示此幫助信息并退出
--version 顯示版本信息并退出
有效的文件格式序列(不使用 --file-system):
%a 八進(jìn)制權(quán)限
%A 用可讀性較好的方式輸出權(quán)限
%b 計(jì)算已分配塊數(shù)(參見%B)
%B 以字節(jié)為單位輸出%b 所報(bào)告的每個(gè)塊的大小
%C SELinux 安全環(huán)境字符串
%d 十進(jìn)制設(shè)備編號(hào)
%D 十六進(jìn)制設(shè)備編號(hào)
%f 十六進(jìn)制原始模式
%F 文件類型
%g 文件的屬組ID
%G 文件的屬組組名
%h 硬鏈接數(shù)量
%i Inode 編號(hào)
%m 掛載點(diǎn)
%n 文件名
%N 如果對象是一個(gè)符號(hào)鏈接,顯示引用到的其它文件名
%o I/O 塊大小
%s 總計(jì)大小,以字節(jié)為單位
%t 十六進(jìn)制主設(shè)備類型
%T 十六進(jìn)制子設(shè)備類型
%u 文件的屬主ID
%U 文件的屬主用戶名
%w 文件創(chuàng)建時(shí)間,若未知?jiǎng)t顯示"-"
%W 從UNIX 元年起以秒計(jì)的文件創(chuàng)建時(shí)間,若未知?jiǎng)t顯示"-"
%x 上次訪問時(shí)間
%X 從UNIX 元年起以秒計(jì)的上次訪問時(shí)間
%y 上次修改時(shí)間
%Y 從UNIX 元年起以秒計(jì)的上次修改時(shí)間
%z 上次更改時(shí)間
%Z 從UNIX 元年起以秒計(jì)的上次更改時(shí)間
有效的文件系統(tǒng)格式序列:
%a 非超級(jí)用戶可用的剩余塊數(shù)
%b 文件系統(tǒng)的總數(shù)據(jù)塊數(shù)
%c 文件系統(tǒng)中文件節(jié)點(diǎn)總數(shù)
%d 文件系統(tǒng)中空閑文件節(jié)點(diǎn)數(shù)
%f 文件系統(tǒng)中空閑塊數(shù)
%i 十六進(jìn)制文件系統(tǒng)ID
%I 允許的文件名最大長度
%n 文件名
%s 塊大小(用于快速傳輸)
%S 基本塊大小(用于塊計(jì)數(shù))
%t 十六進(jìn)制類型描述
%T 可讀性較好的類型描述
注意:您的shell 內(nèi)含自己的stat 程序版本,它會(huì)覆蓋這里所提及的相應(yīng)
版本。請查閱您的shell 文檔獲知它所支持的選項(xiàng)。
ls 命令及其許多參數(shù)提供了一些非常有用的文件信息。另一個(gè)不太為人所熟知的命令 stat 提供了一些更為有用的信息。
下面演示了如何對可執(zhí)行文件“oracle”(位于 $ORACLE_HOME/bin 目錄下)使用此命令。
代碼如下:
# cd $ORACLE_HOME/bin
# stat oracle
File: `oracle'
Size: 93300148 Blocks:182424 IO Block:4096 Regular File
Device: 343h/835d Inode: 12009652 Links: 1
Access: (6751/-rwsr-s--x) Uid:( 500/ oracle) Gid:( 500/ dba)
Access: 2006-08-04 04:30:52.000000000 -0400
Modify: 2005-11-02 11:49:47.000000000 -0500
Change: 2005-11-02 11:55:24.000000000 -0500
注意使用該命令獲得的信息:除了通常的文件大小(也可以使用 ls -l 命令獲得)以外,您還獲得了該文件占用的塊數(shù)。通常的 Linux 塊大小為 512 字節(jié),因此一個(gè)大小為 93,300,148 字節(jié)的文件將占用 (93300148/512=) 182226.85 個(gè)塊。由于塊都是完整占用,因此該文件使用了一些整數(shù)個(gè)數(shù)的塊。無需猜測就可以獲得確切的塊數(shù)。
您還可以從以上輸出中獲得文件所有權(quán)的 GID 和 UID,以及權(quán)限的八進(jìn)制表示形式 (6751)。如果要將文件恢復(fù)到它現(xiàn)在具有的相同權(quán)限,可以使用 chmod 6751 oracle,而不是顯式拼寫這些權(quán)限。
以上輸出最有用的部分是文件訪問時(shí)間戳信息。該輸出顯示,該文件被訪問的時(shí)間是 2006-08-04 04:30:52(顯示在“Access:”的旁邊),即 2006 年 8 月 4 日上午 4:30:52。這是某個(gè)人開始使用數(shù)據(jù)庫的時(shí)間。該文件的修改時(shí)間是 2005-11-02 11:49:47(顯示在“Modify:”的旁邊)。最后,“Change:”旁邊的時(shí)間戳顯示文件狀態(tài)更改的時(shí)間。
stat 命令的修改符 -f 顯示了有關(guān)文件系統(tǒng)(而非文件)的信息:
代碼如下:
# stat -f oracle
File: "oracle"
ID: 0 Namelen:255 Type:ext2/ext3
Blocks: Total: 24033242 Free: 15419301 Available: 14198462 Size: 4096
Inodes: Total: 12222464 Free: 12093976
另一個(gè)選項(xiàng) -t 顯示了完全相同的信息,只不過是在一行中顯示的:
代碼如下:
# stat -t oracle
oracle 93300148 182424 8de9 500 500 343 12009652 1 0 0 1154682061
1130950187 1130950524 4096
這對 shell 腳本非常有用,在 shell 腳本中可以使用一個(gè)簡單的 cut 命令獲得值以進(jìn)行進(jìn)一步處理。
看過“ Linux怎么用stat命令顯示文件 ”的人還看了: