Wenn Sie immer noch an einer Skriptlösung interessiert sind, habe ich schnell etwas zusammengestellt, das Dateien aus allen Verzeichnissen zusammen anzeigt:
#!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";
}
Dateien werden vom neuesten zum ältesten angezeigt und zeigen nur den Dateinamen an. Auf diese Weise können Sie die Ausgabe dieses Skripts problemlos an ein anderes Tool zur Verarbeitung weiterleiten, ohne sich Gedanken über das Entfernen überschüssiger Ausgaben machen zu müssen.
Verwendung: perl find.pl <starting_directory>
my $dir = ($#ARGV >= 0 ? $ARGV[0] : '.');
damit das aktuelle Verzeichnis gescannt wird, wenn kein Verzeichnisparameter angegeben ist, und um die Zeitprint strftime('%Y-%m-%d %H:%M:%S', localtime((stat($key))[9])) . " $key\n";
$files{$key}
wenn Sie diesestrftime
beim Drucken verwenden möchten , um einen zweiten Aufruf von zu vermeidenstat()
. Wenn Sie vorhaben, es an ein anderes Programm weiterzuleiten, habe ich es auch so geändert, dass der vollständige Pfad der Dateinamen angezeigt wird. Sie können das hier holen: pastebin.ca/1797748So was:
dir /s /o:-d
quelle
Wenn Sie Cygwin oder ähnliches installiert haben, reicht
find . -type f | xargs ls -tr
dies aus. Mit der PowerShell von Microsoft können Sie mit ziemlicher Sicherheit Ähnliches tun.quelle
Wenn Sie Everything verwenden , geben Sie einfach den Pfad ein und sortieren Sie nach Änderungsdatum. Sie erhalten alle Dateien in diesem Ordner in dieser Reihenfolge, unabhängig vom Unterverzeichnis.
Alles ist Freeware, eine tragbare Version ist verfügbar.
quelle
Wenn Ihnen das Codieren nichts ausmacht (obwohl dies die Frage in das Gebiet des Stapelüberlaufs führt), gibt es die Klassen
Directory
undFile
in C #.Die
GetFiles
Methode hat eine Überladung, die alle Dateinamen in allen Unterverzeichnissen zurückgibt. Sie können dann diese Liste durchlaufen und aufrufenGetLastWriteTime
, um das geänderte Datum und die geänderte Uhrzeit abzurufen. Speichern Sie den Namen und die Uhrzeit in einem Wörterbuch, sortieren Sie die Uhrzeit und drucken Sie die Dateinamen aus.Es gibt auch die
DirectoryInfo
undFileInfo
Klassen.Ich hätte hinzufügen sollen, dass all diese Funktionen über Powershell verfügbar sind , sodass Sie keinen Zugriff auf eine vollständige IDE haben.
quelle
Wenn Sie etwas wie Git Bash oder Cygwin installiert haben, sollten Sie in der Lage sein, eine der Antworten von hier zu verwenden: /programming/4561895/how-to-recursively-find-the-latest-modified -Datei in einem Verzeichnis
Eine, die für mich gut funktioniert hat, ist:
find . -type f -printf '%TF %TT %p\n' | sort -r
Sie können auch
| head -10
am Ende hinzufügen , um beispielsweise nur die 10 neuesten zu sehen.quelle