我需要找到某个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 *,因为这些目录每天都在创建,所以寻找新的*。
答案 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*"