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
- 原因
- 指定的檔案不存在。
- 解法
- 確認路徑與檔名是否正確,注意大小寫。