如何确定linux机器上目录中最新创建的文件?

如何确定linux机器上目录中最新创建的文件?,linux,perl,Linux,Perl,我试图找出一种方法来确定在目录中创建的最新文件。我无法使用模块,而且我使用的是Linux操作系统。请尝试: cd DIR ls -l -rt | tail -1 尝试: 不,您不能根据文件的出生日期获取文件,因为他们没有linux命令来获取文件的出生日期,但是您当然可以获取有关文件的访问、修改和更改信息。要获取任何文件的访问、修改和更改时间信息,请使用以下命令: stat file-name 此外,要获取最近更改/修改的文件,请使用以下命令: ls -ltr | tail -1 不,您不能

我试图找出一种方法来确定在目录中创建的最新文件。我无法使用模块,而且我使用的是Linux操作系统。

请尝试:

cd DIR
ls -l -rt | tail -1
尝试:


不,您不能根据文件的出生日期获取文件,因为他们没有linux命令来获取文件的出生日期,但是您当然可以获取有关文件的访问、修改和更改信息。要获取任何文件的访问、修改和更改时间信息,请使用以下命令:

stat file-name
此外,要获取最近更改/修改的文件,请使用以下命令:

ls -ltr | tail -1

不,您不能根据文件的出生日期获取文件,因为他们没有linux命令来获取文件的出生日期,但是您当然可以获取有关文件的访问、修改和更改信息。要获取任何文件的访问、修改和更改时间信息,请使用以下命令:

stat file-name
此外,要获取最近更改/修改的文件,请使用以下命令:

ls -ltr | tail -1

只是一个简单的谷歌给了我很好的答案

@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);
opendir(my$DH,$DIR)或die“打开$DIR时出错:$!”;
我的%files=map{$\=>(stat($DIR/$\)[9]}grep(!/^\.\?$/,readdir($DH));
closedir($DH);
my@sorted_files=sort{$files{$b}$files{$a}(键%files);
$sorted_files[0]是最近修改的。如果不是真的 感兴趣的文件,您可以遍历@sorted_文件,直到找到
有趣的文件。

只是一个简单的谷歌给了我一个很好的答案

@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);
opendir(my$DH,$DIR)或die“打开$DIR时出错:$!”;
我的%files=map{$\=>(stat($DIR/$\)[9]}grep(!/^\.\?$/,readdir($DH));
closedir($DH);
my@sorted_files=sort{$files{$b}$files{$a}(键%files);
$sorted_files[0]是最近修改的。如果不是真的 感兴趣的文件,您可以遍历@sorted_文件,直到找到 有趣的文件。

顽皮的方法:
;-)

使用IO::All;
使用v5.20;
#按修改时间对文件进行排序并存储在数组中:
my@files=sort{$b->mtime$a->mtime}io(“.”->所有_文件;
#从排序中获取第一个/最新的文件:
说“$files[0]”~~localtime($files[0]->mtime);
顽皮的方法:
;-)

使用IO::All;
使用v5.20;
#按修改时间对文件进行排序并存储在数组中:
my@files=sort{$b->mtime$a->mtime}io(“.”->所有_文件;
#从排序中获取第一个/最新的文件:
说“$files[0]”~~localtime($files[0]->mtime);

可以使用
glob
stat
吗?看,Linux文件系统不存储文件的出生时间。这是一个无法回答的问题。您可以获得修改或inode更改时间,但两者都与出生时间不相同。您可以使用
glob
stat
吗?Linux文件系统不存储文件的出生时间。这是一个无法回答的问题。您可以获得修改或inode更改时间,但这两个时间都与出生时间不一样。我应该如何将其准确地放入代码中?例如,文件存储在默认的$变量中,我想键入一个代码来只打印最新的文件。只需将下面的代码
my$newestFile=`ls-ltr | tail-1`
,它就会存储最新的文件(在程序运行的同一目录中)变量$newestFile中的名称。如何将其准确地放入代码中?例如,文件存储在默认的$变量中,我想键入一个代码来只打印最新的文件。只需将下面的代码
my$newestFile=`ls-ltr | tail-1`
放入变量$newestFile中,它就会将最新的文件名(在程序运行的同一目录中)存储在变量$newestFile中。