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/