Linux中stat命令顯示檔案的基本使用教程

來源:互聯網
上載者:User

用法: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 命令獲得值以進行進一步處理。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.