lstat

シンボリックリンクのステータス情報を取得する

構文

解説

lstat は、EXPR に指定したファイルやディレクトリのステータス情報を 13 個の要素から成るリストで返します。 引数には ファイルハンドルやディレクトリハンドルを指定することもできます。 基本的に stat 関数と同じですが、シンボリックリンクの場合に、 シンボリックリンクが指す実体のファイルではなく、そのシンボリックリンク自身のステータス情報を返します。 もしシンボリックリンクをサポートしていないシステムでは、通常の stat 関数として動作します。

引数が省略されたら $_ が適用されます。 もし処理に失敗すると、空のリストを返します。

my (
    $dev,  $ino,   $mode,  $nlink, $uid,     $gid, $rdev,
    $size, $atime, $mtime, $ctime, $blksize, $blocks
) = lstat('/usr/bin/python3');

結果として得られる 13 個の要素のそれぞれの意味は次の通りです。 下表には、同じシンボリックリンクに対して、lstatstat を実行した結果を掲載しています。

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