statコマンドは、ファイルの情報やファイルシステムの情報を確認することができます。
lsコマンドよりも詳しいファイル情報を確認したい場合などに利用します。
目次
statコマンドとは
statコマンドは、指定したファイルの情報や指定したファイルが存在するファイルシステムの情報の確認を行うことができます。
シェルによっては、組み込みコマンドのstatコマンドが存在する場合があるので、注意が必要です。
statコマンドの構文
ファイルの情報を確認
1 |
stat [option]… file… |
ファイルシステムの情報を確認
1 |
stat -f [option]… file… |
statコマンドの利用例
ファイル情報の確認
(オプションなし)
statコマンドは、ファイル情報を確認することができます。
コマンド例
1 |
stat file.txt |
file.txt
1 |
a |
実行結果
1 2 3 4 5 6 7 8 |
File: file.txt Size: 2 Blocks: 8 IO Block: 4096 通常ファイル Device: 801h/2049d Inode: 12848008 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu) Access: 2017-08-30 17:39:39.905825005 +0900 Modify: 2017-08-30 17:38:55.659713007 +0900 Change: 2017-08-30 17:38:55.659713007 +0900 Birth: - |
ファイル情報のまとめ表
ラベル | 意味 |
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コマンドの引数にシンボリックリンクファイルを指定した場合、シンボリックリンク先の情報を表示します。
コマンド例
1 |
stat -L file_sym.txt |
実行結果
1 2 3 4 5 6 7 8 |
File: file_sym.txt Size: 2 Blocks: 8 IO Block: 4096 通常ファイル Device: 801h/2049d Inode: 12848008 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu) Access: 2017-08-30 17:39:39.905825005 +0900 Modify: 2017-08-30 17:38:55.659713007 +0900 Change: 2017-08-30 17:38:55.659713007 +0900 Birth: - |
コマンド例
1 |
stat file_sym.txt |
実行結果
1 2 3 4 5 6 7 8 |
File: file_sym.txt -> /home/ubuntu/test_stat/file.txt Size: 31 Blocks: 0 IO Block: 4096 シンボリックリンク Device: 801h/2049d Inode: 12848010 Links: 1 Access: (0777/lrwxrwxrwx) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu) Access: 2017-08-30 17:38:33.484631007 +0900 Modify: 2017-08-30 17:38:28.278029005 +0900 Change: 2017-08-30 17:38:28.278029005 +0900 Birth: - |
ファイルシステムの情報を確認
(-fオプション)
-fオプションは、statコマンドの引数に指定したファイルが存在する、ファイルシステムの情報を表示します。
コマンド例
1 |
stat -f file.txt |
実行結果
1 2 3 4 5 |
File: "file.txt" ID: 3bb62d1a4b113673 Namelen: 255 Type: ext2/ext3 Block size: 4096 Fundamental block size: 4096 Blocks: Total: 127950272 Free: 125559115 Available: 119053861 Inodes: Total: 32505856 Free: 32113092 |
ファイルシステム情報のまとめ表
ラベル | 意味 |
File | ファイル名 |
ID | 16進数のファイルシステムID |
Namelen | ファイル名の最大長 |
Type | ファイルシステムの種類 |
Block size | 転送のためのブロックサイズ |
Fundamental block size | ブロック数を数えるためのブロックサイズ |
Blocks: | ファイルシステムでの合計容量、空き容量、利用可能容量 |
Inodes: | ファイルシステムでの合計inode数、空きinode数 |
表示するファイル情報を記述し表示
(-cオプション)
-cオプション、または--formatオプションは、表示するファイル情報をフォーマット形式で記述して表示することができます。
そして、表示する情報の最後には、自動的に改行が入ります。
コマンド例では、ファイル名、ファイルサイズ、IO転送のための最適ブロックサイズのヒントを表示しています。
コマンド例
1 |
stat -c'%n:%s:%o' file.txt |
実行結果
1 |
file.txt:2:4096 |
フォーマットのまとめ表(ファイル)
フォーマット | 意味 |
%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コマンドの表示を簡潔な形式で表示します。
コマンド例
1 |
stat -t file.txt |
実行結果
1 |
file.txt 2 8 81b4 1000 1000 801 12848008 1 0 0 1504082379 1504082335 1504082335 0 4096 |
それぞれの列の意味(ファイル)
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転送のための最適ブロックサイズのヒント |
コマンド例
1 |
stat -c"%n %s %b %f %u %g %D %i %h %t %T %X %Y %Z %W %o" file.txt |
ファイルシステムの場合も-tオプションを用いて簡潔な形式で表示できます。
コマンド例
1 |
stat -f -t file.txt |
実行結果
1 |
file.txt 3bb62d1a4b113673 255 ef53 4096 4096 127950272 125558896 119053642 32505856 32113172 |
それぞれの列の意味(ファイルシステム)
n列目 | 意味 |
1 | ファイル名 |
2 | ファイルシステムのID (16進数) |
3 | ファイル名の最大長 |
4 | ファイルシステムの種類 (16進数) |
5 | 転送のためのブロックサイズ |
6 | ブロック数を数えるためのブロックサイズ |
7 | ファイルシステムでの合計ブロック数 |
8 | ファイルシステムでの空きブロック数 |
9 | 利用できるブロック数 (non super user) |
10 | ファイルシステムでの合計inode数 |
11 | ファイルシステムでの空きinode数 |
コマンド例
1 |
stat -f -c"%n %i %l %t %s %S %b %f %a %c %d" file.txt |
参考
外部リンクGnu Coreutils
外部リンクGnu Coreutils日本語版