関数順 インデックス
目的別 インデックス

構文
 
 lstat ファイル・ハンドル
 lstat ファイル名

返り値
 
 更新時刻などの13個のファイル情報

説明

  • シンボリックリンクの情報を返します。引数にシンボリックリンクではなくファイルを指定するとstatを同じ結果を返します。
  • 引数を省略すると$_が対象になります。
  • 返す値は更新時刻などを表す13個の要素を持つリストです。
  • 13個のリストは先頭から順番に以下の値になります。
    • 1. ファイルシステムのデバイス番号
    • 2. inode番号
    • 3. ファイルモード
    • 4. ハードリンクの数
    • 5. 所有者のユーザID(数値)
    • 6. 所有者のグループID(数値)
    • 7. デバイス識別子(スペシャルファイルのみ)
    • 8. ファイルサイズ
    • 9. 最終アクセス時刻(エポック秒)
    • 10. 最終更新時刻(エポック秒)
    • 11. 最後のinode変更時刻(エポック秒)
    • 12. ブロックサイズ
    • 13. ブロック数

使用例

ファイルfoo.txtとシンボリックリンクbar.txtの最終更新時刻を表示する
#!/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";
}
シンボリックリンクbar.txtの最終更新時刻を表示する(File::statを使用)
#!/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";
※File::statモジュールを使うとファイル情報をリストではなく名前で取得することができます。