stat

ファイルのステータス情報を取得する

構文

解説

stat は、EXPR に指定したファイルやディレクトリのステータス情報を 13 個の要素から成るリストで返します。 引数には ファイルハンドルやディレクトリハンドルを指定することもできます。 引数が省略されたら、$_ の値が適用されます。 もし処理に失敗すると、空のリストを返します。

my (
    $dev,  $ino,   $mode,  $nlink, $uid,     $gid, $rdev,
    $size, $atime, $mtime, $ctime, $blksize, $blocks
) = stat('./sample.txt');

結果として得られる 13 個の要素のそれぞれの意味は次の通りです。 下表には、Windows および Linux での stat の結果例も掲載しています。

No. 変数名 説明 Win Linux
0 dev ファイルシステムのデバイス番号 2 2051
1 ino inode 番号 0 2649806
2 mode ファイルモード (パーミッション) 33206 33204
3 nlink ファイルへの (ハード) リンクの数 1 1
4 uid ファイル所有者のユーザー ID 0 1000
5 gid ファイル所有者のグループ ID 0 1000
6 rdev デバイス識別子 (特殊ファイルの場合のみ) 2 0
7 size ファイルのトータルのサイズ (単位はバイト) 2799218 2799218
8 atime ファイルの最終アクセス日時を表すエポック秒 1688715943 1688716396
9 mtime ファイルの最終更新日時を表すエポック秒 1351423379 1688716398
10 ctime ファイルの最終 inode 変更日時を表すエポック秒 1688715941 1688716398
11 blksize ファイル操作用の推奨 I/O バイト数(ブロックサイズのことでファイルによって違う場合がある) undef 4096
12 blocks ディスクに割り当てられたシステム固有の実際のブロック数 (1 ブロック 512 バイトのことが多い) undef 5472

Windows など OS によってはすべてのフィールドをサポートしているとは限りませんので注意してください。