Відповіді:
Якщо вас все ще цікавить сценарій, я швидко зібрав щось, що відображатиме файли з усіх каталогів разом:
#!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>
my $dir = ($#ARGV >= 0 ? $ARGV[0] : '.');так що він сканує поточний dir, якщо параметр каталогу не вказаний, і включить час, який надрукується:print strftime('%Y-%m-%d %H:%M:%S', localtime((stat($key))[9])) . " $key\n";
$files{$key}якщо ви хочете використовувати це для strftimeдруку, щоб уникнути повторного дзвінка stat(). Якщо ви плануєте передати його іншій програмі, я також змінив її для відображення повного шляху імен файлів. Ви можете схопити це тут: pastebin.ca/1797748
Якщо у вас встановлено cygwin або подібне, тоді find . -type f | xargs ls -trви зробите свою справу. Ви можете майже напевно зробити подібне з повноваженнями Microsoft.
У разі , якщо ви використовуєте Everything , просто введіть шлях і сортувати по даті зміни , і ви отримаєте всі файли в цій папці в тому порядку, незалежно підкаталог.
Все безкоштовно, доступна портативна версія.
Якщо ви не заперечуєте проти кодування (хоча це ставить питання про територію переповнення стека), у C # є класи Directoryта Fileкласи.
GetFilesМетод має перевантаження , яка буде повертати все імена файлів у всіх підкаталогах. Потім ви можете GetLastWriteTimeперейти до цього списку, закликаючи отримати змінену дату / час. Збережіть ім’я та час у словнику, відсортуйте за часом та роздрукуйте назви файлів.
Там також DirectoryInfoі FileInfoкласи.
Я мав би додати, що вся ця функціональність доступна через Powershell , тому у вас немає доступу до повного IDE.
Якщо у вас встановлено щось на зразок Git Bash або Cygwin, вам слід мати можливість використовувати один з відповідей звідси: /programming/4561895/how-to-recursively-find-the-latest-modified -file-in-a-каталог
Який добре працював для мене: find . -type f -printf '%TF %TT %p\n' | sort -r
Ви також можете додати | head -10в кінці цього, щоб побачити лише 10 останніх, скажімо.