stat — 顯示檔案或檔案系統的詳細狀態

顯示檔案的完整元資料,含 inode、時間戳記、權限等詳細資訊。

語法

stat [選項] 檔案...

常用選項

選項 說明 範例
-f, --file-system 顯示檔案所在檔案系統的資訊(而非檔案本身) stat -f /
-c FORMAT 以指定格式輸出(適合腳本解析) stat -c '%n %s %U' file.txt
-L, --dereference 追蹤符號連結,顯示目標的資訊 stat -L symlink
%n, %s, %U 格式符號:%n=檔名, %s=大小, %U=擁有者名稱 stat -c '%U' file.txt

使用範例

範例 1:顯示檔案完整資訊

直接輸出檔案的所有元資料,包含三種時間戳記(Access/Modify/Change)。

$ stat /etc/passwd
  File: /etc/passwd
  Size: 2468		Blocks: 8	 IO Block: 4096  regular file
Device: 801h/2049d	Inode: 524289	 Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2026-05-20 09:00:01.000000000 +0800
Modify: 2026-03-01 10:30:00.000000000 +0800
Change: 2026-03-01 10:30:00.000000000 +0800
範例 2:只取得檔案大小(腳本用)

使用 -c 格式符只輸出需要的欄位,適合在腳本中解析。

$ stat -c "%s" /var/log/syslog
5242880
範例 3:取得擁有者與權限

格式符號組合:%U=擁有者名稱,%G=群組名稱,%a=八進位權限。

$ stat -c "%U %G %a %n" /etc/nginx/nginx.conf
root root 644 /etc/nginx/nginx.conf
範例 4:顯示最後修改時間

只顯示修改時間(%y),方便在腳本中取得。

$ stat -c "%y" /etc/hosts
2026-01-15 08:30:00.000000000 +0800

常見錯誤與排錯

stat: cannot stat 'filename': No such file or directory
原因
指定的檔案不存在。
解法
確認路徑與檔名是否正確,注意大小寫。

延伸閱讀