我在 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 条。