Получить список дат последних модификаций файлов в папке
Собственно сабж. Опыта с Perl нет никакого. Нужно получить массив с датами последних модификаций всех файлов в конкретной папке. Пока пробую использовать нативные команды ОС и парсить результат, но это видится как костыль.
Ответы (1 шт):
Автор решения: nörbörnën
→ Ссылка
Чтобы искать File::Find
Чтобы определить является ли найденное обычным файлом -f
Чтобы вычислить дату модификации stat
#!/usr/local/bin/perl -w
use strict;
use File::Find;
use Data::Dumper qw/Dumper/;
my $d = $ARGV[0] || '.';
my @paths;
find(sub { push @paths, $File::Find::name }, $d);
my @files;
foreach my $f (@paths) {
if (-f $f) {
my @f_stat = stat($f);
push @files, { file => $f, mtime => $f_stat[9] };
}
}
print Dumper @files;
Результат:
$ perl src/file-stat-1/index.pl ./src
...
$VAR267 = {
'mtime' => 1620653004,
'file' => './src/oracle-2/typeorm.ts'
};
$VAR268 = {
'mtime' => 1620653008,
'file' => './src/oracle-2/oracledb.js'
};
$VAR269 = {
'mtime' => 1620653011,
'file' => './src/oracle-2/knex.js'
};
$VAR270 = {
'file' => './src/express-1024-bytes/index.js',
'mtime' => 1624648857
};
Другие варианты поиска файлов можно почитать тут.