如何在目录中(包括子目录)查找最新文件?

如何在目录中(包括子目录)查找最新文件?

我在 Windows 中寻找一种方法来列出给定目录及其子目录中的所有文件,并按顺序排列,以便最新文件位于顶部。有没有简单的方法可以做到这一点?我也会使用 Perl 脚本。

答案1

如果您仍然对脚本解决方案感兴趣,我已经快速地将一些东西放在一起,它将显示所有目录中的文件:

#!C:/Perl/bin/perl.exe
use File::Find;

my %files = ();

sub process
{
    $files{$_} = (stat($_))[9] unless -d $_;
}

find (\&process, $ARGV[0]);

foreach my $key(sort {$files{$b} <=> $files{$a}} keys %files)
{
    print "$key\n";
}

文件按从最新到最旧的顺序显示,仅显示文件名。这样,您可以轻松地将此脚本的输出通过管道传输到另一个工具进行处理,而不必担心删除多余的输出。

用法:perl find.pl <starting_directory>

答案2

像这样:dir /s /o:-d

答案3

如果您安装了 cygwin 或类似软件,那么find . -type f | xargs ls -tr就可以了。您几乎肯定可以使用 Microsoft 的 powershell 执行类似操作。

答案4

如果你安装了类似 Git Bash 或 Cygwin 的东西,你应该能够使用这里的一个答案:https://stackoverflow.com/questions/4561895/how-to-recursively-find-the-latest-modified-file-in-a-directory

对我来说效果很好的一个方法是:find . -type f -printf '%TF %TT %p\n' | sort -r

您还可以| head -10在其末尾添加内容,以便仅查看最近的 10 条。

相关内容