構文 |
|
lstat ファイル・ハンドル lstat ファイル名 |
返り値 |
|
更新時刻などの13個のファイル情報 |
説明
- シンボリックリンクの情報を返します。引数にシンボリックリンクではなくファイルを指定するとstatを同じ結果を返します。
- 引数を省略すると$_が対象になります。
- 返す値は更新時刻などを表す13個の要素を持つリストです。
- 13個のリストは先頭から順番に以下の値になります。
- 1. ファイルシステムのデバイス番号
- 2. inode番号
- 3. ファイルモード
- 4. ハードリンクの数
- 5. 所有者のユーザID(数値)
- 6. 所有者のグループID(数値)
- 7. デバイス識別子(スペシャルファイルのみ)
- 8. ファイルサイズ
- 9. 最終アクセス時刻(エポック秒)
- 10. 最終更新時刻(エポック秒)
- 11. 最後のinode変更時刻(エポック秒)
- 12. ブロックサイズ
- 13. ブロック数
使用例
#!/usr/bin/perl
use strict;
use warnings;
use POSIX;
my $filename = 'foo.txt'; # ファイル名
my $linkname = 'bar.txt'; # シンボリックリンク名
my @fileinfo = stat $filename; # ファイル情報の取得
my @linkinfo = lstat $linkname; # リンク情報の取得
print_mtime($fileinfo[9]);
print_mtime($linkinfo[9]);
# 最終更新時刻を表示する
sub print_mtime {
my $mtime = shift;
my $now = POSIX::strftime "%Y/%m/%d %H:%M:%S", localtime($mtime);
print $now, "\n";
}
#!/usr/bin/perl
use strict;
use warnings;
use File::stat;
my $linkname = 'bar.txt';
my $st = lstat $linkname; # リンク情報の取得
my $now = localtime($st->mtime);
print $now, "\n";