構文 |
|
stat ファイル・ハンドル stat ファイル名 |
返り値 |
|
更新時刻などの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 @fileinfo = stat $filename;
# 最終更新時刻の取得
my $mtime = $fileinfo[9];
my $now = POSIX::strftime "%Y/%m/%d %H:%M:%S", localtime($mtime);
print $now, "\n";
#!/usr/bin/perl
use strict;
use warnings;
my $dir = '/home/user1/xxx';
my $expire_time = 3600;
my $now = time;
opendir my $dh, $dir or die "$!:$dir";
while (my $file = readdir $dh) {
next unless -f $file;
my $path = sprintf "%s/%s", $dir, $file;
my $mtime = (stat $path)[9];
if ($mtime + $expire_time < $now) {
if (unlink $path) {
print "[Deleted]$path\n";
} else {
warn "$!:$path";
}
}
}
closedir $dh;
#!/usr/bin/perl
use strict;
use warnings;
use File::stat;
my $filename = 'foo.txt';
my $st = stat $filename;
my $now = localtime($st->mtime);
print $now, "\n";