Engineering
Ubuntu statコマンドの使い方
- 作成日:2024年2月23日16:02
- 更新日:2024年3月18日1:23
Linux
Ubuntu
Ubuntuのstatコマンドはファイル情報を確認するときに用いられるコマンドです。ファイル自体のほか、ファイルが置かれているファイルシステムやリンクを指定した場合はリンク先の情報を確認することが可能です。
man stat
...
NAME
stat - display file or file system status
...
コマンド引数は以下のものがあります。
引数 | 効果 |
---|---|
-Lまたは--dereference | シンボリックリンクが指定された場合に元ファイルの情報を出力する |
-fまたは--file-system | ファイルではなくファイルシステムの情報を出力する |
--cached=<MODE> | <S(指定可能な要素は「always(利用可能な場合は常にキャッシュされた属性を読み込む), never(最新のファイルシステムの属性と同期する)」), default(キャッシングの動作をファイルシステムに委ねる)」) |
-c <FORMAT>または--format=<FORMAT> | 指定したフォーマットで出力する(終わりに改行が含まれ、バックスラッシュでエスケープされない)) |
--printf=<FORMAT> | 指定したフォーマットで出力する(終わりに改行が含まれず、バックスラッシュでエスケープされる) |
-tまたは--terse | 簡潔なフォーマットで出力する |
--help | ヘルプを表示 |
--version | バージョン情報を表示 |
以下、順次出力例を示します。
実行例:オプションなし
# ファイルdemo-01.txtが存在
demo@demo-01-Ubuntu22:~/ubuntu-commands$ ls -l
total 0
-rw-rw-r-- 1 demo demo 0 Feb 23 13:30 demo-01.txt
# ファイル名・ファイルサイズのほか最終アクセス・変更日時など多くの情報を確認することができる
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat demo-01.txt
File: demo-01.txt
Size: 21 Blocks: 8 IO Block: 4096 regular file
Device: 811h/2065d Inode: 258179 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ demo) Gid: ( 1000/ demo)
Access: 2024-02-23 13:31:26.982680491 +0000
Modify: 2024-02-23 13:31:26.982680491 +0000
Change: 2024-02-23 13:31:26.994680463 +0000
Birth: 2024-02-23 13:31:26.982680491 +0000
実行例:-L / --dereference
demo@demo-01-Ubuntu22:~/ubuntu-commands$ ls -l
total 4
-rw-rw-r-- 1 demo demo 21 Feb 23 13:31 demo-01.txt
# 現在日時を確認
demo@demo-01-Ubuntu22:~/ubuntu-commands$ date
Fri Feb 23 13:44:32 UTC 2024
# シンボリックリンクを作成
demo@demo-01-Ubuntu22:~/ubuntu-commands$ ln -s demo-01.txt demo-01-link
demo@demo-01-Ubuntu22:~/ubuntu-commands$ ls -l
total 4
lrwxrwxrwx 1 demo demo 11 Feb 23 13:44 demo-01-link -> demo-01.txt
-rw-rw-r-- 1 demo demo 21 Feb 23 13:31 demo-01.txt
# 元ファイルの情報を確認
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat demo-01.txt
File: demo-01.txt
Size: 21 Blocks: 8 IO Block: 4096 regular file
Device: 811h/2065d Inode: 258179 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ demo) Gid: ( 1000/ demo)
Access: 2024-02-23 13:31:26.982680491 +0000
Modify: 2024-02-23 13:31:26.982680491 +0000
Change: 2024-02-23 13:31:26.994680463 +0000
Birth: 2024-02-23 13:31:26.982680491 +0000
# -Lオプションをつけて元ファイルを指定しても結果は同じ
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat -L demo-01.txt
File: demo-01.txt
Size: 21 Blocks: 8 IO Block: 4096 regular file
Device: 811h/2065d Inode: 258179 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ demo) Gid: ( 1000/ demo)
Access: 2024-02-23 13:31:26.982680491 +0000
Modify: 2024-02-23 13:31:26.982680491 +0000
Change: 2024-02-23 13:31:26.994680463 +0000
Birth: 2024-02-23 13:31:26.982680491 +0000
# --dereferenceオプションも同様
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat --dereference demo-01.txt
File: demo-01.txt
Size: 21 Blocks: 8 IO Block: 4096 regular file
Device: 811h/2065d Inode: 258179 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ demo) Gid: ( 1000/ demo)
Access: 2024-02-23 13:31:26.982680491 +0000
Modify: 2024-02-23 13:31:26.982680491 +0000
Change: 2024-02-23 13:31:26.994680463 +0000
Birth: 2024-02-23 13:31:26.982680491 +0000
# オプションなしでシンボリックリンクを指定するとリンクについての情報を確認できる
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat demo-01-link
File: demo-01-link -> demo-01.txt
Size: 11 Blocks: 0 IO Block: 4096 symbolic link
Device: 811h/2065d Inode: 258166 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 1000/ demo) Gid: ( 1000/ demo)
Access: 2024-02-23 13:44:37.911798200 +0000
Modify: 2024-02-23 13:44:35.631809332 +0000
Change: 2024-02-23 13:44:35.631809332 +0000
Birth: 2024-02-23 13:44:35.631809332 +0000
# -Lオプションをつけると元ファイルの情報が表示される
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat -L demo-01-link
File: demo-01-link
Size: 21 Blocks: 8 IO Block: 4096 regular file
Device: 811h/2065d Inode: 258179 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ demo) Gid: ( 1000/ demo)
Access: 2024-02-23 13:31:26.982680491 +0000
Modify: 2024-02-23 13:31:26.982680491 +0000
Change: 2024-02-23 13:31:26.994680463 +0000
Birth: 2024-02-23 13:31:26.982680491 +0000
# --dereferenceオプションと-Lオプションの出力は同じ
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat --dereference demo-01-link
File: demo-01-link
Size: 21 Blocks: 8 IO Block: 4096 regular file
Device: 811h/2065d Inode: 258179 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ demo) Gid: ( 1000/ demo)
Access: 2024-02-23 13:31:26.982680491 +0000
Modify: 2024-02-23 13:31:26.982680491 +0000
Change: 2024-02-23 13:31:26.994680463 +0000
Birth: 2024-02-23 13:31:26.982680491 +0000
実行例:-f / --file-system
demo@demo-01-Ubuntu22:~/ubuntu-commands$ ls -l
total 4
lrwxrwxrwx 1 demo demo 11 Feb 23 13:44 demo-01-link -> demo-01.txt
-rw-rw-r-- 1 demo demo 21 Feb 23 13:31 demo-01.txt
# 新しくdemo-02.txtファイルを作成
demo@demo-01-Ubuntu22:~/ubuntu-commands$ touch demo-02.txt
# ファイルdemo-01.txtの情報を確認
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat demo-01.txt
File: demo-01.txt
Size: 21 Blocks: 8 IO Block: 4096 regular file
Device: 811h/2065d Inode: 258179 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ demo) Gid: ( 1000/ demo)
Access: 2024-02-23 13:31:26.982680491 +0000
Modify: 2024-02-23 13:31:26.982680491 +0000
Change: 2024-02-23 13:31:26.994680463 +0000
Birth: 2024-02-23 13:31:26.982680491 +0000
# ファイルdemo-02.txtの情報はdemo-01.txtの出力と異なる
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat demo-02.txt
File: demo-02.txt
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 811h/2065d Inode: 258186 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ demo) Gid: ( 1000/ demo)
Access: 2024-02-23 14:15:30.428891170 +0000
Modify: 2024-02-23 14:15:30.428891170 +0000
Change: 2024-02-23 14:15:30.428891170 +0000
Birth: 2024-02-23 14:15:30.428891170 +0000
# -fオプションをつけるとファイルシステムの情報が出力される
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat -f demo-01.txt
File: "demo-01.txt"
ID: c529c3bf315ece60 Namelen: 255 Type: ext2/ext3
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 7574544 Free: 7084037 Available: 7079941
Inodes: Total: 3870720 Free: 3799139
# --file-systemオプションも同様
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat --file-system demo-01.txt
File: "demo-01.txt"
ID: c529c3bf315ece60 Namelen: 255 Type: ext2/ext3
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 7574544 Free: 7084037 Available: 7079941
Inodes: Total: 3870720 Free: 3799139
# ファイルシステムは共通なのでdemo-02.txtを指定した場合も同じ内容が出力される
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat -f demo-02.txt
File: "demo-02.txt"
ID: c529c3bf315ece60 Namelen: 255 Type: ext2/ext3
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 7574544 Free: 7084037 Available: 7079941
Inodes: Total: 3870720 Free: 3799139
# --file-systemオプションも同様
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat --file-system demo-02.txt
File: "demo-02.txt"
ID: c529c3bf315ece60 Namelen: 255 Type: ext2/ext3
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 7574544 Free: 7084037 Available: 7079941
Inodes: Total: 3870720 Free: 3799139
# 参考:マウントしたNFSサーバー上のファイルを指定するとnfsファイルシステムの情報を確認できる
demo@demo-01-Ubuntu22:/mnt/demo$ stat -f sample-01.txt
File: "sample-01.txt"
ID: 0 Namelen: 255 Type: nfs
Block size: 524288 Fundamental block size: 524288
Blocks: Total: 59177 Free: 55780 Available: 55748
Inodes: Total: 3870720 Free: 3799007
# --file-systemオプションも同様
demo@demo-01-Ubuntu22:/mnt/demo$ stat --file-system sample-01.txt
File: "sample-01.txt"
ID: 0 Namelen: 255 Type: nfs
Block size: 524288 Fundamental block size: 524288
Blocks: Total: 59177 Free: 55780 Available: 55748
Inodes: Total: 3870720 Free: 3799007
実行例:--cached=<MODE>
NFS上のファイルsample-01.txtで確認、変更にあたってはechoコマンドで適当な文字列をファイルに追記しています。
NFSのキャッシュ設定に関してはこちらを参考にしています。https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/storage_administration_guide/fscachenfs
# ファイル変更後、--cached=alwaysを指定したケース
demo@demo-01-Ubuntu22:/mnt/demo$ stat --cached=always sample-01.txt
File: sample-01.txt
Size: 128 Blocks: 8 IO Block: 524288 regular file
Device: 2fh/47d Inode: 1290243 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ demo) Gid: ( 1000/ demo)
Access: 2024-02-23 14:59:55.267284498 +0000
Modify: 2024-02-23 15:17:19.594739414 +0000
Change: 2024-02-23 15:17:19.594739414 +0000
Birth: -
# その後オプションなしでコマンドを実行するとModify/Changeが異なっている→--cached=alwaysとした際の出力はキャッシュ情報を参照している
demo@demo-01-Ubuntu22:/mnt/demo$ stat sample-01.txt
File: sample-01.txt
Size: 144 Blocks: 8 IO Block: 524288 regular file
Device: 2fh/47d Inode: 1290243 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ demo) Gid: ( 1000/ demo)
Access: 2024-02-23 14:59:55.267284498 +0000
Modify: 2024-02-23 15:17:26.790688380 +0000
Change: 2024-02-23 15:17:26.790688380 +0000
Birth: -
# ファイル変更後、--cached=neverを指定したケース
demo@demo-01-Ubuntu22:/mnt/demo$ stat --cached=never sample-01.txt
File: sample-01.txt
Size: 160 Blocks: 8 IO Block: 524288 regular file
Device: 2fh/47d Inode: 1290243 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ demo) Gid: ( 1000/ demo)
Access: 2024-02-23 14:59:55.267284498 +0000
Modify: 2024-02-23 15:17:37.618607421 +0000
Change: 2024-02-23 15:17:37.618607421 +0000
Birth: -
# その後オプションなしでコマンドを実行すると同じ出力が得られる→--cache=neverとした際の出力は実際のリモートファイルと同期したものになっている
demo@demo-01-Ubuntu22:/mnt/demo$ stat sample-01.txt
File: sample-01.txt
Size: 160 Blocks: 8 IO Block: 524288 regular file
Device: 2fh/47d Inode: 1290243 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ demo) Gid: ( 1000/ demo)
Access: 2024-02-23 14:59:55.267284498 +0000
Modify: 2024-02-23 15:17:37.618607421 +0000
Change: 2024-02-23 15:17:37.618607421 +0000
Birth: -
# ファイル変更後、--cached=defaultと指定したケース
demo@demo-01-Ubuntu22:/mnt/demo$ stat --cached=default sample-01.txt
File: sample-01.txt
Size: 176 Blocks: 8 IO Block: 524288 regular file
Device: 2fh/47d Inode: 1290243 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ demo) Gid: ( 1000/ demo)
Access: 2024-02-23 14:59:55.267284498 +0000
Modify: 2024-02-23 15:17:48.498555211 +0000
Change: 2024-02-23 15:17:48.498555211 +0000
Birth: -
# その後オプションなしでコマンドを実行すると同じ出力が得られる→本環境では--cache=defaultとした際の出力は実際のリモートファイルと同期したものになっている
demo@demo-01-Ubuntu22:/mnt/demo$ stat sample-01.txt
File: sample-01.txt
Size: 176 Blocks: 8 IO Block: 524288 regular file
Device: 2fh/47d Inode: 1290243 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ demo) Gid: ( 1000/ demo)
Access: 2024-02-23 14:59:55.267284498 +0000
Modify: 2024-02-23 15:17:48.498555211 +0000
Change: 2024-02-23 15:17:48.498555211 +0000
Birth: -
実行例:-c <FORMAT> / --format=<FORMAT>
<FORMAT>内で使用できるフォーマットについてはhttps://www.gnu.org/software/coreutils/manual/html_node/stat-invocation.html#stat-invocationが参照できます。
demo@demo-01-Ubuntu22:~/ubuntu-commands$ ls -l
total 8
lrwxrwxrwx 1 demo demo 11 Feb 23 13:44 demo-01-link -> demo-01.txt
-rw-rw-r-- 1 demo demo 21 Feb 23 13:31 demo-01.txt
-rw-rw-r-- 1 demo demo 16 Feb 23 14:27 demo-02.txt
# ファイルdemo-01.txtの情報を確認
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat demo-01.txt
File: demo-01.txt
Size: 21 Blocks: 8 IO Block: 4096 regular file
Device: 811h/2065d Inode: 258179 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ demo) Gid: ( 1000/ demo)
Access: 2024-02-23 13:31:26.982680491 +0000
Modify: 2024-02-23 13:31:26.982680491 +0000
Change: 2024-02-23 13:31:26.994680463 +0000
Birth: 2024-02-23 13:31:26.982680491 +0000
# -cオプションで出力を加工できる
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat -c "FileName: %n, Total size: %s, File birth time: %w, Last access time: %x, Last data modification time: %y, Last status change time: %z" demo-01.txt
FileName: demo-01.txt, Total size: 21, File birth time: 2024-02-23 13:31:26.982680491 +0000, Last access time: 2024-02-23 13:31:26.982680491 +0000, Last data modification time: 2024-02-23 13:31:26.982680491 +0000, Last status change time: 2024-02-23 13:31:26.994680463 +0000
# --formatオプションの場合は「=」が必要
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat --format="FileName: %n, Total size: %s, File birth time: %w, Last access time: %x, Last data modification time: %y, Last status change time: %z" demo-01.txt
FileName: demo-01.txt, Total size: 21, File birth time: 2024-02-23 13:31:26.982680491 +0000, Last access time: 2024-02-23 13:31:26.982680491 +0000, Last data modification time: 2024-02-23 13:31:26.982680491 +0000, Last status change time: 2024-02-23 13:31:26.994680463 +0000
# 複数ファイルを指定することができ、その場合は各ファイルごとの情報が改行されて出力される(--printfオプションとの比較のため)
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat -c "FileName: %n, Total size: %s, File birth time: %w, Last access time: %x, Last data modification time: %y, Last status change time: %z" demo-01.txt demo-02.txt
FileName: demo-01.txt, Total size: 21, File birth time: 2024-02-23 13:31:26.982680491 +0000, Last access time: 2024-02-23 13:31:26.982680491 +0000, Last data modification time: 2024-02-23 13:31:26.982680491 +0000, Last status change time: 2024-02-23 13:31:26.994680463 +0000
FileName: demo-02.txt, Total size: 16, File birth time: 2024-02-23 14:15:30.428891170 +0000, Last access time: 2024-02-23 14:15:30.428891170 +0000, Last data modification time: 2024-02-23 14:27:04.323651990 +0000, Last status change time: 2024-02-23 14:27:04.323651990 +0000
# バックスラッシュはそのまま出力される(--printfオプションとの比較のため)
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat -c "FileName: %n, Total size: %s, File birth time: %w, Last access time: %x, Last data modification time: %y, Last status change time: %z \abc" demo-01.txt
FileName: demo-01.txt, Total size: 21, File birth time: 2024-02-23 13:31:26.982680491 +0000, Last access time: 2024-02-23 13:31:26.982680491 +0000, Last data modification time: 2024-02-23 13:31:26.982680491 +0000, Last status change time: 2024-02-23 13:31:26.994680463 +0000 \abc
実行例:--printf=<FORMAT>
<FORMAT>内で使用できるフォーマットについてはhttps://www.gnu.org/software/coreutils/manual/html_node/stat-invocation.html#stat-invocationが参照できます。
demo@demo-01-Ubuntu22:~/ubuntu-commands$ ls -l
total 8
lrwxrwxrwx 1 demo demo 11 Feb 23 13:44 demo-01-link -> demo-01.txt
-rw-rw-r-- 1 demo demo 21 Feb 23 13:31 demo-01.txt
-rw-rw-r-- 1 demo demo 16 Feb 23 14:27 demo-02.txt
# ファイルdemo-01.txtの情報を確認
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat demo-01.txt
File: demo-01.txt
Size: 21 Blocks: 8 IO Block: 4096 regular file
Device: 811h/2065d Inode: 258179 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ demo) Gid: ( 1000/ demo)
Access: 2024-02-23 13:31:26.982680491 +0000
Modify: 2024-02-23 13:31:26.982680491 +0000
Change: 2024-02-23 13:31:26.994680463 +0000
Birth: 2024-02-23 13:31:26.982680491 +0000
# --printfオプションで実行すると標準で改行が出力されなくなり、バックスラッシュでエスケープされる
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat --printf="FileName: %n, Total size: %s, File birth time: %w, Last access time: %x, Last data modification time: %y, Last status change time: %z \abc" demo-01.txt
FileName: demo-01.txt, Total size: 21, File birth time: 2024-02-23 13:31:26.982680491 +0000, Last access time: 2024-02-23 13:31:26.982680491 +0000, Last data modification time: 2024-02-23 13:31:26.982680491 +0000, Last status change time: 2024-02-23 13:31:26.994680463 +0000 bcdemo@demo-01-Ubuntu22:~/ubuntu-commands$
# 複数ファイルを指定した場合
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat --printf="FileName: %n, Total size: %s, File birth time: %w, Last access time: %x, Last data modification time: %y, Last status change time: %z" demo-01.txt demo-02.txt
FileName: demo-01.txt, Total size: 21, File birth time: 2024-02-23 13:31:26.982680491 +0000, Last access time: 2024-02-23 13:31:26.982680491 +0000, Last data modification time: 2024-02-23 13:31:26.982680491 +0000, Last status change time: 2024-02-23 13:31:26.994680463 +0000FileName: demo-02.txt, Total size: 16, File birth time: 2024-02-23 14:15:30.428891170 +0000, Last access time: 2024-02-23 14:15:30.428891170 +0000, Last data modification time: 2024-02-23 14:27:04.323651990 +0000, Last status change time: 2024-02-23 14:27:04.323651990 +0000demo@demo-01-Ubuntu22:~/ubuntu-commands$
実行例: -t / --terse
demo@demo-01-Ubuntu22:~/ubuntu-commands$ ls -l
total 8
lrwxrwxrwx 1 demo demo 11 Feb 23 13:44 demo-01-link -> demo-01.txt
-rw-rw-r-- 1 demo demo 21 Feb 23 13:31 demo-01.txt
-rw-rw-r-- 1 demo demo 16 Feb 23 14:27 demo-02.txt
# ファイルdemo-01.txtの情報を確認
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat demo-01.txt
File: demo-01.txt
Size: 21 Blocks: 8 IO Block: 4096 regular file
Device: 811h/2065d Inode: 258179 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ demo) Gid: ( 1000/ demo)
Access: 2024-02-23 13:31:26.982680491 +0000
Modify: 2024-02-23 13:31:26.982680491 +0000
Change: 2024-02-23 13:31:26.994680463 +0000
Birth: 2024-02-23 13:31:26.982680491 +0000
# -tオプションでコマンドを実行すると簡潔な形で出力される
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat -t demo-01.txt
demo-01.txt 21 8 81b4 1000 1000 811 258179 1 0 0 1708695086 1708695086 1708695086 1708695086 4096
# --terseオプションも同様
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat --terse demo-01.txt
demo-01.txt 21 8 81b4 1000 1000 811 258179 1 0 0 1708695086 1708695086 1708695086 1708695086 4096
# -t / --terseオプションは--formatオプションで"%n %s %b %f %u %g %D %i %h %t %T %X %Y %Z %W %o"と指定した場合と同じ
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat --format="%n %s %b %f %u %g %D %i %h %t %T %X %Y %Z %W %o" demo-01.txt
demo-01.txt 21 8 81b4 1000 1000 811 258179 1 0 0 1708695086 1708695086 1708695086 1708695086 4096
# -tオプションでファイルシステムの情報を確認
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat -f -t demo-01.txt
demo-01.txt c529c3bf315ece60 255 ef53 4096 4096 7574544 7022933 7018837 3870720 3781805
# --terseオプションも同様
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat -f --terse demo-01.txt
demo-01.txt c529c3bf315ece60 255 ef53 4096 4096 7574544 7002646 6998550 3870720 3772201
# -t / --terseオプションでファイルシステムの情報を出力した場合は--formatオプションで"%n %i %l %t %s %S %b %f %a %c %d"と指定した場合と同じ
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat -f --format="%n %i %l %t %s %S %b %f %a %c %d" demo-01.txt
demo-01.txt c529c3bf315ece60 255 ef53 4096 4096 7574544 6982573 6978477 3870720 3772224
実行例:--help
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat --help
Usage: stat [OPTION]... FILE...
Display file or file system status.
Mandatory arguments to long options are mandatory for short options too.
-L, --dereference follow links
-f, --file-system display file system status instead of file status
--cached=MODE specify how to use cached attributes;
useful on remote file systems. See MODE below
-c --format=FORMAT use the specified FORMAT instead of the default;
output a newline after each use of FORMAT
--printf=FORMAT like --format, but interpret backslash escapes,
and do not output a mandatory trailing newline;
if you want a newline, include \n in FORMAT
-t, --terse print the information in terse form
--help display this help and exit
--version output version information and exit
The --cached MODE argument can be; always, never, or default.
`always` will use cached attributes if available, while
`never` will try to synchronize with the latest attributes, and
`default` will leave it up to the underlying file system.
The valid format sequences for files (without --file-system):
%a permission bits in octal (note '#' and '0' printf flags)
%A permission bits and file type in human readable form
%b number of blocks allocated (see %B)
%B the size in bytes of each block reported by %b
%C SELinux security context string
%d device number in decimal
%D device number in hex
%f raw mode in hex
%F file type
%g group ID of owner
%G group name of owner
%h number of hard links
%i inode number
%m mount point
%n file name
%N quoted file name with dereference if symbolic link
%o optimal I/O transfer size hint
%s total size, in bytes
%t major device type in hex, for character/block device special files
%T minor device type in hex, for character/block device special files
%u user ID of owner
%U user name of owner
%w time of file birth, human-readable; - if unknown
%W time of file birth, seconds since Epoch; 0 if unknown
%x time of last access, human-readable
%X time of last access, seconds since Epoch
%y time of last data modification, human-readable
%Y time of last data modification, seconds since Epoch
%z time of last status change, human-readable
%Z time of last status change, seconds since Epoch
Valid format sequences for file systems:
%a free blocks available to non-superuser
%b total data blocks in file system
%c total file nodes in file system
%d free file nodes in file system
%f free blocks in file system
%i file system ID in hex
%l maximum length of filenames
%n file name
%s block size (for faster transfers)
%S fundamental block size (for block counts)
%t file system type in hex
%T file system type in human readable form
--terse is equivalent to the following FORMAT:
%n %s %b %f %u %g %D %i %h %t %T %X %Y %Z %W %o %C
--terse --file-system is equivalent to the following FORMAT:
%n %i %l %t %s %S %b %f %a %c %d
NOTE: your shell may have its own version of stat, which usually supersedes
the version described here. Please refer to your shell's documentation
for details about the options it supports.
GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report any translation bugs to <https://translationproject.org/team/>
Full documentation <https://www.gnu.org/software/coreutils/stat>
or available locally via: info '(coreutils) stat invocation'
実行例:--help
demo@demo-01-Ubuntu22:~/ubuntu-commands$ stat --version
stat (GNU coreutils) 8.32
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Michael Meskes.
参考文献:
- man statコマンド
- https://www.gnu.org/software/coreutils/manual/html_node/stat-invocation.html#stat-invocation
- https://learnubuntu.com/stat-command/