ls -ltr dirname * in perl

时间:2012-08-27 05:21:35

标签: perl grep

我需要找到某个dirname,我有一个greils for latest-file的代码。有人可以帮我找到ls -ltr dirname *而不使用perl脚本中的ls -ltr命令。下面的代码可能有所帮助:

my $dir = "/abc/pqr/xyz";
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);
print "the file is $sorted_files[0] \n";

我需要在/ abc / pqr / xyz中找到一个名字为new_123。作为ls -ltr new *,因为这些目录每天都在创建,所以寻找新的*。

1 个答案:

答案 0 :(得分:0)

有点不清楚你要求的是什么,但是:

  

我需要在/ abc / pqr / xyz中找到一个名字为new_123。作为ls -ltr   new *,因为这些目录是每天创建的,所以寻找新的*。

为此,您可以使用glob

我的PERL有点生疏,但我认为这样做会:

while (my $dir = glob("new*")) {

        next unless (-d "$dir");
        print "$dir\n";

}

如果系统调用不是限制,您可以使用find:

find /some/path/ -type d -name "new*"