ファイルのステータス情報を取得する
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 によってはすべてのフィールドをサポートしているとは限りませんので注意してください。