我试图运行一个perl脚本,打开目录中最后编辑的文件。
我知道如何打开单个文件,如下面的示例,但不是最后一次编辑/home/test/
open(CONFIG_FILE,"/home/test/test.txt");
while (<CONFIG_FILE>){
}
close(CONFIG_FILE);
我该怎么做?
答案 0 :(得分:4)
它从/home/test/
读取所有文件并获取最新文件
my ($last_modified) = sort { -M $a <=> -M $b } grep -f, </home/test/*>;
检查perldoc -f -X
答案 1 :(得分:0)
尝试这样做:
chomp(my $file = qx(cd /home/test && ls -1t | sed q));
此解决方案通过评估shell命令来工作。 sed q
是仅显示第一行的技巧
qx()
执行shell命令并获取输出,请参阅perldoc qx
或者使用pure-perl:
use File::DirList;
my $files = File::DirList::list('/home/test', 'M');
my $file = $files->[0]->[13];
方法File::DirList::list('/home/test', 'M');
返回按修改日期排序的数组,只需选取第一个数组即可。 13是文件名的关键。
答案 2 :(得分:0)
有一个如何读取目录in the documentation for the readdir function中文件的示例。
一旦你开始这样做,你将需要使用the stat function来检查每个文件的mtime,当你在readdir中查看它时。
所有其余的只是编程; - )
或者,您可以按日期排序ls
中的最后一项:ls -tr | tail -1
。