statコマンド(ファイルまたはディレクトリの状態を標準出力に出力する)
形式
【Windows限定】stat [-c 書式] [-t] パス名 ... 【UNIX限定】 stat [-L] [-c 書式] [-t] パス名 ...
機能
ファイルまたはディレクトリの状態を標準出力に出力します。パス名にシンボリックリンクファイルが指定された場合,リンクをたどらないでシンボリックリンクファイルの状態を表示します。
引数
終了コード
終了コード |
意味 |
---|---|
0 |
正常終了 |
1以上 |
エラー終了 |
表示形式
ファイル情報の表示形式には,通常表示形式,簡潔な表示形式,独自の表示形式の3種類があります。どの表示形式になるかは指定するオプションによって決まります。
通常表示形式
オプションを指定しないで実行した場合の表示形式です。次のファイル情報をラベル付きで表示します。
出力情報 |
ラベル |
---|---|
クォートされたファイル名 シンボリックリンクの場合は,シンボリックリンクの参照先も表示します。【UNIX限定】 |
File: |
合計サイズ |
Size: |
割り当てられたブロック数 |
Blocks: |
ファイルシステムI/O操作での最適なブロックサイズ |
IO Block: |
ファイルの種類 表示内容は,項目「表示形式」の「ファイルの種類の表示内容」を参照してください。 |
− |
デバイス番号 「デバイス番号の16進数表記h/デバイス番号の10進数表記d」の形式で表示します。 デバイスファイルではない場合は表示しません。 |
Device: |
iノード番号 |
Inode: |
ハードリンクの数 |
Links: |
デバイスファイルの種類 「メジャーデバイス番号,マイナーデバイス番号」の形式で表示します。デバイスファイルではない場合は表示しません。 |
Device type: |
パーミッション 「パーミッションの8進数表記/パーミッションの文字列表記」の形式で表示します。 |
Access: |
所有者のユーザー情報 「所有者のユーザーID/所有者のユーザー名」の形式で表示します。 |
Uid: |
所有者のグループ情報 「所有者のグループID/所有者のグループ名」の形式で表示します。 |
Gid: |
ファイルの最終アクセス日時 |
Access: |
ファイルの最終修正日時 |
Modify: |
ファイル情報の最終変更日時 |
Change: |
簡潔な表示形式
-tオプションを指定した場合の表示形式です。次のファイル情報をスペース区切りで連続して表示します。
-
ファイル名
-
合計サイズ
-
割り当てられたブロック数
-
rawモードの16進数表記
-
所有者のユーザーID
-
所有者のグループID
-
デバイス番号の16進数表記
-
iノード番号
-
ハードリンクの数
-
メジャーデバイス番号
-
マイナーデバイス番号
-
ファイルの最終アクセス日時(エポックからの秒数)
-
ファイルの最終修正日時(エポックからの秒数)
-
ファイル情報の最終変更日時(エポックからの秒数)
-
ファイルシステムI/O操作での最適なブロックサイズ
独自の表示形式
-cオプションを指定した場合の表示形式です。書式指定コードおよび任意の文字列を組み合わせて,独自の表示形式を指定できます。また,書式指定コードの%の後ろには,フラグ文字,フィールド幅,精度も定義できます。
-
書式指定コード
指定できる書式指定コードを次の表に示します。
書式指定コード
意味
%a
パーミッションの8進数表記
Windowsの場合,所有者だけのパーミッションを表示します。
%A
パーミッションの文字列表記
Windowsの場合,所有者だけのパーミッションを表示します。
%b
割り当てられたブロック数
Windowsの場合,常に0を表示します。
%B
各ブロックの大きさ(バイト単位)
Windowsの場合,常に0を表示します。
%d
デバイス番号の10進数表記
Windowsの場合,ドライブ番号を表示しますが,次の場合は表示が異なります。
-
フルパスにしたときにドライブレターに続く「:」がないパスの場合
デバイス番号として「-」を表示して,後続の処理を続行します。
-
デバイス番号取得処理でエラーが発生した場合
警告メッセージを標準エラー出力に出力し,デバイス番号として「?」を表示して,後続の処理を続行します。
%D
デバイス番号の16進数表記
Windowsの場合,ドライブ番号を表示しますが,次の場合は表示が異なります。
-
フルパスにしたときにドライブレターに続く「:」がないパスの場合
デバイス番号として「-」を表示して,後続の処理を続行します。
-
デバイス番号取得処理でエラーが発生した場合
警告メッセージを標準エラー出力に出力し,デバイス番号として「?」を表示して,後続の処理を続行します。
%f
rawモードの16進数表記
Windowsの場合,所有者だけのパーミッションを表示します。
%F
ファイルの種類
表示内容は,項目「表示形式」の「ファイルの種類の表示内容」を参照してください。
%g
所有者のグループID
Windowsの場合,常に0を表示します。
%G
所有者のグループ名
Windowsの場合,常に「...」を表示します。
UNIXの場合,所有者のグループ名を取得できないときは所有者のグループIDを表示して,後続の処理を続行します。
%h
ハードリンクの数
Windowsの場合,常に0を表示します。
%i
iノード番号
Windowsの場合,常に0を表示します。
%n
ファイル名
%N
クォーテーションで囲まれたファイル名
シンボリックリンクの場合は参照先ファイル名も表示します。
Windowsの場合,シンボリックリンクであっても参照先ファイル名は表示しません。
UNIXの場合,参照先ファイル名の取得に失敗したときは,警告メッセージを標準エラー出力に出力し,参照先ファイル名は表示しないで,後続の処理を続行します。
%o
ファイルシステム I/O操作での最適なブロックサイズ
Windowsの場合,常に0を表示します。
%s
合計サイズ(バイト単位)
Windowsの場合,ディレクトリの合計サイズは常に0を表示します。
UNIXの場合,デバイスファイルの合計サイズは常に0を表示します。
%t
メジャーデバイス番号の16進数表記
Windowsの場合,常に0を表示します。
%T
マイナーデバイス番号の16進数表記
Windowsの場合,常に0を表示します。
%u
所有者のユーザーID
Windowsの場合,常に0を表示します。
%U
所有者のユーザー名
Windowsの場合,所有者のユーザー名が取得できないときは「...」を表示して,後続の処理を続行します。
UNIXの場合,所有者のユーザー名が取得できないときは所有者のユーザーIDを表示して,後続の処理を続行します。
%x
ファイルの最終アクセス日時※
Windowsの場合,ファイルの最終修正日時と同じ情報を表示します。
ファイルの最終アクセス日時の表示に失敗した場合,警告メッセージを標準エラー出力に出力し,ファイルの最終アクセス日時の表示は「?」にして,後続の処理を続行します。
%X
ファイルの最終アクセス日時のエポック(UTCの1970年1月1日00:00:00)からの秒数
Windowsの場合,ファイルの最終修正日時と同じ情報を表示します。
%y
ファイルの最終修正日時※
ファイルの最終修正日時の表示に失敗した場合,警告メッセージを標準エラー出力に出力し,ファイルの最終修正日時の表示は「?」にして,後続の処理を続行します。
%Y
ファイルの最終修正日時のエポック(UTCの1970年1月1日00:00:00)からの秒数
%z
ファイル情報の最終変更日時※
Windowsの場合,ファイルの最終修正日時と同じ情報を表示します。
ファイル情報の最終変更日時の表示に失敗した場合,警告メッセージを標準エラー出力に出力し,ファイル情報の最終変更日時の表示は「?」にして,後続の処理を続行します。
%Z
ファイル情報の最終変更日時のエポック(UTCの1970年1月1日00:00:00)からの秒数
Windowsの場合,ファイルの最終修正日時と同じ情報を表示します。
%%
%(パーセント)記号
-
-
フラグ文字
書式指定コードの%の後ろに次のフラグ文字を指定できます。省略することもできます。
フラグ文字
内容
#
0以外の8進数表記に対しては前に0を付けます。
0以外の16進数表記に対しては前に0xを付けます。
-
出力文字列をフィールドの左にそろえます。
+
数値の正負を示す記号(+/-)を常に表示します。
符号なし整数として定義されているファイル情報に対しては,この指定は無視されます。
スペース
符号付き整数として定義されているファイル情報に対して,正の数字の前にスペースを表示します。
+と同時に指定した場合は,+が優先されます。
0
フィールドの左側をスペースの代わりに0で埋めます。
-
フィールド幅
書式指定コードの%またはフラグ文字の後ろに数値を指定することで,最小のフィールド幅を定義します。フィールド幅は0〜2147483647の範囲で指定できます。省略することもできます。
-
精度
書式指定コードの%またはフラグ文字の後ろに,ピリオド(.)と次に示す数値を定義します。精度は,UNIXの場合は0〜2147483647の範囲で,Windowsの場合は0〜512の範囲で指定できます。省略することもできます。
-
ファイル情報が文字列の場合
表示する最大長を定義します。
-
ファイル情報が数値の場合
最小桁数を定義します。
-
ファイルの種類の表示内容
表示されるファイルの種類と,その意味は次のとおりです。
ファイルの種類 |
意味 |
---|---|
regular file |
通常ファイル |
directory |
ディレクトリ |
symbolic link |
シンボリックリンク【UNIX限定】 |
fifo |
FIFO【UNIX限定】 |
socket |
ソケット【UNIX限定】 |
block special file |
ブロック型スペシャルファイル【UNIX限定】 |
character special file |
キャラクタ型スペシャルファイル【UNIX限定】 |
unknown file |
不明なファイル(上記以外のファイル)【UNIX限定】 |
注意事項
-
Windowsの場合,「通常ファイル」,「ディレクトリ」以外については,通常ファイルまたはディレクトリとして扱います。
UNIXの場合,「通常ファイル」,「ディレクトリ」,「シンボリックリンク」,「FIFO」,「ソケット」,「ブロック型スペシャルファイル」,「キャラクタ型スペシャルファイル」以外は不明なファイルとして扱います。
-
Windowsの場合,日付と時刻の表示には「日付と時刻のプロパティ」で定義されているタイムゾーンが使用されます。環境変数TZの値は影響しません。
ただし,タイムゾーンの表示は環境変数TZの値とコントロールパネルの「日付と時刻のプロパティ」ダイアログボックスで定義されているタイムゾーンを使用するため,環境変数TZの値とコントロールパネルの「日付と時刻のプロパティ」ダイアログボックスで定義されているタイムゾーンは同じにしてください。同じでない場合,「ファイルの最終アクセス日時」,「ファイルの最終修正日時」,「ファイル情報の最終更新日時」で表示されるタイムゾーンが正しく表示されません。
-
UNIXの場合,ブロックサイズのデフォルトは512バイトです。ブロックサイズは環境変数BLOCKSIZEで変更できます。
環境変数BLOCKSIZEは512から1G(1024×1024×1024)の範囲で指定できます。範囲外の値を指定した場合は次のように処理し,警告メッセージを標準エラー出力に出力して,後続の処理を続行します。
-
環境変数BLOCKSIZEに512より小さい値を指定した場合
ブロックサイズを512バイトとします。
-
環境変数BLOCKSIZEに1G(1024×1024×1024)より大きい値を指定した場合
ブロックサイズを1G(1024×1024×1024)バイトとします。
環境変数BLOCKSIZEでブロックサイズを変更する場合は,512の倍数を指定してください。512の倍数でない場合,余りは切り捨てられます。例えば,1,500バイトが定義されている場合,1,024バイトとして扱います。
数字の後ろには,何倍であるかを示すサイズ文字(G(1024×1024×1024),M(1024×1024),K(1024))を指定できます。数値とサイズ文字以外を指定した場合,ブロックサイズを512バイトとして,警告メッセージを標準エラー出力に出力し,後続の処理を続行します。
-
-
Solarisの場合,ディレクトリ内のファイルの「割り当てられたブロック数」を出力する際,間接ブロックを含むブロックの総数を表示します。また,ハードリンクされたファイルがある場合,「割り当てられたブロック数」は正しく表示されません。
使用例
-
ファイルの状態を通常表示形式で表示します。
Windowsの場合
C:\TEMP>%ADSH_OSCMD_DIR%\stat .\test.txt File: `.\test.txt' Size: 7 Blocks: 0 IO Block: 0 regular file Device: 0003h/00003d Inode: 0 Links: 1 Access: (0600/-rw-------) Uid: ( 0/ user1) Gid: ( 0/ ...) Access: 2014-02-20 10:31:28.000000000 +0900 Modify: 2014-02-20 10:31:33.000000000 +0900 Change: 2014-02-20 10:31:28.000000000 +0900
UNIXの場合
$ stat ./test.txt File: `./test.txt' Size: 4 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 688407 Links: 2 Access: (0644/-rw-r--r--) Uid: ( 501/ user1) Gid: ( 502/ group1) Access: 2014-02-11 18:35:52.000000000 +0900 Modify: 2014-02-11 18:35:52.000000000 +0900 Change: 2014-02-18 16:08:39.000000000 +0900
-
ファイルのサイズだけを表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\stat -c %s .\test.txt 7
-
複数ファイルの状態を表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\stat .\test.txt .\test1.txt File: `.\test.txt' Size: 7 Blocks: 0 IO Block: 0 regular file Device: 0003h/00003d Inode: 0 Links: 1 Access: (0600/-rw-------) Uid: ( 0/ user1) Gid: ( 0/ ...) Access: 2014-02-20 10:31:28.000000000 +0900 Modify: 2014-02-20 10:31:33.000000000 +0900 Change: 2014-02-20 10:31:28.000000000 +0900 File: '.\test1.txt' Size: 7 Blocks: 0 IO Block: 0 regular file Device: 0003h/00003d Inode: 0 Links: 1 Access: (0600/-rw-------) Uid: ( 0/ user1) Gid: ( 0/ ...) Access: 2014-02-20 14:34:01.000000000 +0900 Modify: 2014-02-20 14:34:01.000000000 +0900 Change: 2014-02-20 14:34:01.000000000 +0900
-
ファイルの状態を独自の表示形式で出力します。
C:\TEMP>%ADSH_OSCMD_DIR%\stat -c "Filename : %n" .\test.txt Filename : .\test.txt
-
オプションエラーのメッセージを表示します。
このメッセージは,コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。
C:\TEMP>%ADSH_OSCMD_DIR%\stat -z stat: illegal option -- z usage: stat [-c format] [-t] file ...