ls 命令可能是每一個(gè) Unix 使用者第一個(gè)學(xué)習(xí)的命令之一, 但它僅僅顯示了 stat 命令能給出的信息的一小部分。
stat 命令從文件的索引節(jié)點(diǎn)獲取信息。 正如你可能已經(jīng)了解的那樣, 每一個(gè)系統(tǒng)里的文件都存有三組日期和時(shí)間, 它們包括最近修改時(shí)間(即使用 ls -l 命令時(shí)顯示的日期和時(shí)間), 最近狀態(tài)改變時(shí)間(包括對(duì)文件重命名)和最近訪問(wèn)時(shí)間。
使用長(zhǎng)列表模式查看文件信息, 你會(huì)看到類(lèi)似下面的內(nèi)容:
使用 stat 命令, 你會(huì)看到下面這些:
在上面的情形中, 文件的狀態(tài)改變和文件修改的日期/時(shí)間是相同的, 而訪問(wèn)時(shí)間則是相當(dāng)近的時(shí)間。 我們還可以看到文件使用了 8 個(gè)塊, 以及兩種格式顯示的文件權(quán)限 -- 八進(jìn)制(0700)格式和 rwx 格式。 在第三行顯示的索引節(jié)點(diǎn)是 12731681. 文件沒(méi)有其它的硬鏈接(Links: 1)。 而且, 這個(gè)文件是一個(gè)常規(guī)文件。
把文件重命名, 你會(huì)看到狀態(tài)改變時(shí)間發(fā)生變化。
這里的 ctime 信息, 最早設(shè)計(jì)用來(lái)存儲(chǔ)文件的創(chuàng)建(create)日期和時(shí)間, 但后來(lái)不知道什么時(shí)候變?yōu)橛脕?lái)存儲(chǔ)狀態(tài)修改(change)時(shí)間。
改變文件的權(quán)限也會(huì)改變 ctime 域。
你也可以配合通配符來(lái)使用 stat 命令以列出一組文件的狀態(tài):
如果我們喜歡的話, 我們也可以通過(guò)其他命令來(lái)獲取這些信息。
向 ls -l 命令添加 "u" 選項(xiàng), 你會(huì)看到下面的結(jié)果。 注意這個(gè)選項(xiàng)會(huì)顯示最后訪問(wèn)時(shí)間, 而添加 "c" 選項(xiàng)則會(huì)顯示狀態(tài)改變時(shí)間(在本例中, 是我們重命名文件的時(shí)間)。
stat 命令也可應(yīng)用與文件夾。
在這個(gè)例子中, 我們可以看到有許多的鏈接。
在這里, 我們還可以查看一個(gè)文件系統(tǒng)。
注意 Namelen (文件名長(zhǎng)度)域, 如果文件名長(zhǎng)于 255 個(gè)字符的話, 你會(huì)很幸運(yùn)地在文件名處看到心形符號(hào)!
stat 命令還可以一次顯示所有我們想要的信息。 下面的例子中, 我們只想查看文件類(lèi)型, 然后是硬連接數(shù)。
在下面的例子中, 我們查看了文件權(quán)限 -- 分別以兩種可用的格式 -- 然后是文件的 SELinux 安全環(huán)境。最后,我們我們可以以從 Epoch 開(kāi)始的秒數(shù)格式來(lái)查看文件訪問(wèn)時(shí)間。
下面全部是可用的選項(xiàng):
%a 八進(jìn)制表示的訪問(wèn)權(quán)限
%A 可讀格式表示的訪問(wèn)權(quán)限
%b 分配的塊數(shù)(參見(jiàn) %B)
%B %b 參數(shù)顯示的每個(gè)塊的字節(jié)數(shù)
%d 十進(jìn)制表示的設(shè)備號(hào)
%D 十六進(jìn)制表示的設(shè)備號(hào)
%f 十六進(jìn)制表示的 Raw 模式
%F 文件類(lèi)型
%g 屬主的組 ID
%G 屬主的組名
%h 硬連接數(shù)
%i Inode 號(hào)
%n 文件名
%N 如果是符號(hào)鏈接,顯示器所鏈接的文件名
%o I/O 塊大小
%s 全部占用的字節(jié)大小
%t 十六進(jìn)制的主設(shè)備號(hào)
%T 十六進(jìn)制的副設(shè)備號(hào)
%u 屬主的用戶 ID
%U 屬主的用戶名
%x 最后訪問(wèn)時(shí)間
%X 最后訪問(wèn)時(shí)間,自 Epoch 開(kāi)始的秒數(shù)
%y 最后修改時(shí)間
%Y 最后修改時(shí)間,自 Epoch 開(kāi)始的秒數(shù)
%z 最后改變時(shí)間
%Z 最后改變時(shí)間,自 Epoch 開(kāi)始的秒數(shù)
針對(duì)文件系統(tǒng)還有如下格式選項(xiàng):
%a 普通用戶可用的塊數(shù)
%b 文件系統(tǒng)的全部數(shù)據(jù)塊數(shù)
%c 文件系統(tǒng)的全部文件節(jié)點(diǎn)數(shù)
%d 文件系統(tǒng)的可用文件節(jié)點(diǎn)數(shù)
%f 文件系統(tǒng)的可用節(jié)點(diǎn)數(shù)
%C SELinux 的安全上下文
%i 十六進(jìn)制表示的文件系統(tǒng) ID
%l 文件名的最大長(zhǎng)度
%n 文件系統(tǒng)的文件名
%s 塊大小(用于更快的傳輸)
%S 基本塊大小(用于塊計(jì)數(shù))
%t 十六進(jìn)制表示的文件系統(tǒng)類(lèi)型
%T 可讀格式表示的文件系統(tǒng)類(lèi)型
這些信息都可以得到,stat 命令也許可以幫你以稍微不同的角度來(lái)了解你的文件。
新聞熱點(diǎn)
疑難解答
圖片精選