stat - ファイルまたはファイルシステムの情報を確認

stat

statコマンドは、ファイルの情報やファイルシステムの情報を確認することができます。
lsコマンドよりも詳しいファイル情報を確認したい場合などに利用します。

statコマンドとは

statコマンドは、指定したファイルの情報や指定したファイルが存在するファイルシステムの情報の確認を行うことができます。

シェルによっては、組み込みコマンドのstatコマンドが存在する場合があるので、注意が必要です。

statコマンドの構文

ファイルの情報を確認

ファイルシステムの情報を確認

statコマンドの利用例

ファイル情報の確認
(オプションなし)

statコマンドは、ファイル情報を確認することができます。

コマンド例

file.txt

実行結果

ファイル情報のまとめ表

ラベル 意味
File ファイル名
Size ファイルサイズ
Blocks ディスク内で使用されるサイズ
IO Block 入出力のブロックサイズ
通常のファイル ファイルの種類、他にもシンボリックリンク等有り
Device デバイス番号、hは16進数、dは10進数
Inode inode番号
Links inode番号に対して貼られているリンク数、ハードリンク等に関係
Access(権限) アクセス権限
Uid ユーザID(ユーザ番号、ユーザ名)
Gid グループID(グループ番号、グループ名)
Acess(時間) atime、アクセス時間
Modify mtime、修正した時間
Change ctime、ステータス変更時間
Birth ファイル生成の時間、わからない場合は「-」になる

シンボリックリンク先の情報を確認
(-Lオプション)

-Lオプションは、statコマンドの引数にシンボリックリンクファイルを指定した場合、シンボリックリンク先の情報を表示します。

コマンド例

実行結果

-Lオプションを使用しない場合、シンボリックリンクファイルの情報を表示します。
コマンド例

実行結果

ファイルシステムの情報を確認
(-fオプション)

-fオプションは、statコマンドの引数に指定したファイルが存在する、ファイルシステムの情報を表示します。

コマンド例

実行結果

ファイルシステム情報のまとめ表

ラベル 意味
File ファイル名
ID 16進数のファイルシステムID
Namelen ファイル名の最大長
Type ファイルシステムの種類
Block size 転送のためのブロックサイズ
Fundamental block size ブロック数を数えるためのブロックサイズ
Blocks: ファイルシステムでの合計容量、空き容量、利用可能容量
Inodes: ファイルシステムでの合計inode数、空きinode数

表示するファイル情報を記述し表示
(-cオプション)

-cオプション、または--formatオプションは、表示するファイル情報をフォーマット形式で記述して表示することができます。
そして、表示する情報の最後には、自動的に改行が入ります。

コマンド例では、ファイル名、ファイルサイズ、IO転送のための最適ブロックサイズのヒントを表示しています。

コマンド例

実行結果

フォーマットのまとめ表(ファイル)

フォーマット 意味
%a アクセス権限(8進数表示)
%A アクセス権限
%b ブロック数(%Bを参考)
%B ブロックサイズ(%bの単位)
%C SELinuxのコンテキスト(利用可能ならば)
%d デバイス番号(10進数)
%D デバイス番号(16進数)
%f mode (16進数)
%F ファイルタイプ
%g グループID
%G グループ名
%h ハードリンク数
%i inode番号
%m マウントポイント
%n ファイル名
%N ファイル名、シンボリックリンクファイルならリンク先も表示
%o I/O転送のための最適ブロックサイズのヒント
%s ファイルサイズ(バイト)
%t メジャーデバイス番号(16進数)
%T マイナーデバイス番号(16進数)
%u ユーザID
%U ユーザ名
%w ファイル生成の時間、不明の場合は「-」
%W Epoch timeでのファイル生成時間、不明の場合は0
%x atime、アクセス時間
%X Epoch timeでのatime、アクセス時間
%y 修正した時間
%Y Epoch timeでのmtime、修正した時間
%z ctime、ステータス変更時間
%Z Epoch timeでのctime、ステータス変更時間

フォーマット表のまとめ(ファイルシステム) -fオプションが必要

フォーマット 意味
%a 利用できるブロック数 (non super user)
%b ファイルシステムでの合計ブロック数
%c ファイルシステムでの合計inode数
%d ファイルシステムでの空きinode数
%f ファイルシステムでの空きブロック数
%i ファイルシステムのID (16進数)
%l ファイル名の最大長
%n ファイル名
%s 転送のためのブロックサイズ
%S ブロック数を数えるためのブロックサイズ
%t ファイルシステムの種類 (16進数)
%T ファイルシステムの種類

他のプログラムの解析に適した簡潔な形式で表示
(-tオプション)

-tオプションは、statコマンドの表示を簡潔な形式で表示します。

コマンド例

実行結果

それぞれの列の意味(ファイル)

n列目 意味
1 ファイル名
2 ファイルサイズ(バイト)
3 ブロック数(%Bのブロックサイズを参考)
4 mode (16進数)
5 ユーザID
6 グループID
7 デバイス番号(16進数)
8 inode番号
9 ハードリンク数
10 メジャーデバイス番号(16進数)
11 マイナーデバイス番号(16進数)
12 Epoch timeでのatime、アクセス時間
13 Epoch timeでのmtime、修正した時間
14 Epoch timeでのctime、ステータス変更時間
15 Epoch timeでのファイル生成時間、不明の場合は0
16 I/O転送のための最適ブロックサイズのヒント
-tオプションは、-cオプションで書き換えることもできます。
コマンド例

ファイルシステムの場合も-tオプションを用いて簡潔な形式で表示できます。

コマンド例

実行結果

それぞれの列の意味(ファイルシステム)

n列目 意味
1 ファイル名
2 ファイルシステムのID (16進数)
3 ファイル名の最大長
4 ファイルシステムの種類 (16進数)
5 転送のためのブロックサイズ
6 ブロック数を数えるためのブロックサイズ
7 ファイルシステムでの合計ブロック数
8 ファイルシステムでの空きブロック数
9 利用できるブロック数 (non super user)
10 ファイルシステムでの合計inode数
11 ファイルシステムでの空きinode数
ファイルシステムの場合も同様に、-cオプションで書き換えることができます。
コマンド例

参考

外部リンクGnu Coreutils

外部リンクGnu Coreutils日本語版