歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux服務器

Linux中stat命令顯示文件的基本使用教程

   用法:stat [選項]... 文件...

  顯示文件或文件系統的狀態。

  -L, --dereference 跟隨鏈接

  -f, --file-system 顯示文件系統狀態而非文件狀態

  -c --format=格式 使用指定輸出格式代替默認值,每用一次指定格式換一新行

  --printf=格式 類似 --format,但是會解釋反斜槓轉義符,不使用換行作

  輸出結尾。如果您仍希望使用換行,可以在格式中

  加入"n"

  -t, --terse 使用簡潔格式輸出

  --help 顯示此幫助信息並退出

  --version 顯示版本信息並退出

  有效的文件格式序列(不使用 --file-system):

  %a 八進制權限

  %A 用可讀性較好的方式輸出權限

  %b 計算已分配塊數(參見%B)

  %B 以字節為單位輸出%b 所報告的每個塊的大小

  %C SELinux 安全環境字符串

  %d 十進制設備編號

  %D 十六進制設備編號

  %f 十六進制原始模式

  %F 文件類型

  %g 文件的屬組ID

  %G 文件的屬組組名

  %h 硬鏈接數量

  %i Inode 編號

  %m 掛載點

  %n 文件名

  %N 如果對象是一個符號鏈接,顯示引用到的其它文件名

  %o I/O 塊大小

  %s 總計大小,以字節為單位

  %t 十六進制主設備類型

  %T 十六進制子設備類型

  %u 文件的屬主ID

  %U 文件的屬主用戶名

  %w 文件創建時間,若未知則顯示"-"

  %W 從UNIX 元年起以秒計的文件創建時間,若未知則顯示"-"

  %x 上次訪問時間

  %X 從UNIX 元年起以秒計的上次訪問時間

  %y 上次修改時間

  %Y 從UNIX 元年起以秒計的上次修改時間

  %z 上次更改時間

  %Z 從UNIX 元年起以秒計的上次更改時間

  有效的文件系統格式序列:

  %a 非超級用戶可用的剩余塊數

  %b 文件系統的總數據塊數

  %c 文件系統中文件節點總數

  %d 文件系統中空閒文件節點數

  %f 文件系統中空閒塊數

  %i 十六進制文件系統ID

  %I 允許的文件名最大長度

  %n 文件名

  %s 塊大小(用於快速傳輸)

  %S 基本塊大小(用於塊計數)

  %t 十六進制類型描述

  %T 可讀性較好的類型描述

  注意:您的shell 內含自己的stat 程序版本,它會覆蓋這裡所提及的相應

  版本。請查閱您的shell 文檔獲知它所支持的選項。

  ls 命令及其許多參數提供了一些非常有用的文件信息。另一個不太為人所熟知的命令 stat 提供了一些更為有用的信息。

  下面演示了如何對可執行文件“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 命令獲得)以外,您還獲得了該文件占用的塊數。通常的 Linux 塊大小為 512 字節,因此一個大小為 93,300,148 字節的文件將占用 (93300148/512=) 182226.85 個塊。由於塊都是完整占用,因此該文件使用了一些整數個數的塊。無需猜測就可以獲得確切的塊數。

  您還可以從以上輸出中獲得文件所有權的 GID 和 UID,以及權限的八進制表示形式 (6751)。如果要將文件恢復到它現在具有的相同權限,可以使用 chmod 6751 oracle,而不是顯式拼寫這些權限。

  以上輸出最有用的部分是文件訪問時間戳信息。該輸出顯示,該文件被訪問的時間是 2006-08-04 04:30:52(顯示在“Access:”的旁邊),即 2006 年 8 月 4 日上午 4:30:52。這是某個人開始使用數據庫的時間。該文件的修改時間是 2005-11-02 11:49:47(顯示在“Modify:”的旁邊)。最後,“Change:”旁邊的時間戳顯示文件狀態更改的時間。

  stat 命令的修改符 -f 顯示了有關文件系統(而非文件)的信息:

  代碼如下:

  # 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

  另一個選項 -t 顯示了完全相同的信息,只不過是在一行中顯示的:

  代碼如下:

  # stat -t oracle

  oracle 93300148 182424 8de9 500 500 343 12009652 1 0 0 1154682061

  1130950187 1130950524 4096

  這對 shell 腳本非常有用,在 shell 腳本中可以使用一個簡單的 cut 命令獲得值以進行進一步處理。

Copyright © Linux教程網 All Rights Reserved