Yanıtlar:
Hala bir betik çözümü ile ilgileniyorsanız, hızlı bir şekilde birlikte tüm dizinlerden dosyaları birlikte görüntüleyecek bir şey attım:
#!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";
}
Dosyalar en yeniden en eskiye doğru görüntülenir ve yalnızca dosya adını gösterir. Bu şekilde, bu komut dosyasının çıktısını, fazla çıktıyı soyma konusunda endişelenmenize gerek kalmadan işleme için başka bir araca kolayca bağlayabilirsiniz.
Kullanımı: perl find.pl <starting_directory>
my $dir = ($#ARGV >= 0 ? $ARGV[0] : '.');
bununla karşılaşan herkesin yardımı için): böylece dizin parametresi verilmezse geçerli dizini tarar ve yazdırılan zamanı dahil eder:print strftime('%Y-%m-%d %H:%M:%S', localtime((stat($key))[9])) . " $key\n";
$files{$key}
için strftime
yazdırırken kullanmak istiyorsanız , mtime içinde saklanmalıdır stat()
. Başka bir programa aktarmayı planlıyorsanız, dosya adlarının tam yolunu görüntülemek için de değiştirdim. Burada kapabilirsiniz: pastebin.ca/1797748
Eğer yüklü cygwin veya benzeri varsa find . -type f | xargs ls -tr
hile yapacak. Neredeyse kesinlikle Microsoft'un powershell ile benzer yapabilirsiniz.
Herşeyi kullanıyorsanız , sadece yolu yazın ve Değiştirilme Tarihine göre sıralayın ; bu dizindeki tüm dosyaları alt dizine bakılmaksızın bu sırayla alırsınız.
Her şey ücretsiz, taşınabilir bir sürümü mevcuttur.
Kodlama sakıncası yoksa (bu soruyu Stack Overflow bölgesine alır), ancak C # 'da Directory
ve File
sınıfları vardır.
GetFiles
Yöntem tüm alt dizinleri tüm dosya adlarını döndürür bir aşırı vardır. Daha sonra GetLastWriteTime
değiştirilen tarih / saati almak için çağrı yaparak bu liste üzerinde döngü yapabilirsiniz . Adı ve saati sözlükte saklayın, saati sıralayın ve dosya adlarını yazdırın.
Ayrıca DirectoryInfo
ve FileInfo
sınıfları da var.
Tüm bu işlevlerin Powershell aracılığıyla kullanılabildiğini eklemeliydim , bu nedenle tam bir IDE'ye erişiminiz yok.
Git Bash veya Cygwin gibi bir şey yüklüyse, aşağıdaki yanıtlardan birini buradan kullanabilmelisiniz: /programming/4561895/how-to-recursively-find-the-latest-modified -dosyadan-in-a-dizin
Benim için iyi çalışan biri: find . -type f -printf '%TF %TT %p\n' | sort -r
Ayrıca | head -10
, en son 10 tanesini görmek için bunun sonuna da ekleyebilirsiniz .