我试图找出一种方法来确定目录中创建的最新文件。我不能使用模块而且我在Linux操作系统上。
答案 0 :(得分:2)
不,你不能根据他们的出生日期获取文件,因为他们没有linux命令来获取文件的出生日期,但当然你可以获得有关文件的访问,修改和更改信息。要获取任何文件的访问,修改和更改时间信息,请使用:
stat file-name
另外,要获取最新更改/修改的文件,请使用以下命令:
ls -ltr | tail -1
答案 1 :(得分:2)
@list = `ls -t`;
$newest = $list[0];
或完全在perl
opendir(my $DH, $DIR) or die "Error opening $DIR: $!";
my %files = map { $_ => (stat("$DIR/$_"))[9] } grep(! /^\.\.?$/, readdir($DH));
closedir($DH);
my @sorted_files = sort { $files{$b} <=> $files{$a} } (keys %files);
$ sorted_files [0]是最近修改过的。如果不是实际的话 感兴趣的文件,您可以遍历@sorted_files直到找到 有趣的文件。
答案 2 :(得分:1)
尝试:
cd DIR
ls -l -rt | tail -1
答案 3 :(得分:0)
顽皮的IO::All
方法:;-)
use IO::All;
use v5.20;
# sort files by their modification time and store in an array:
my @files = sort{$b->mtime <=> $a->mtime} io(".")->all_files;
# get the first/newest file from the sort:
say "$files[0] ". ~~localtime($files[0]->mtime);