Liste der zuletzt geänderten Dateien für ein Verzeichnis und alle Unterverzeichnisse

14

Unter Linux kenne ich diesen Befehl, um die zuletzt geänderten Dateien in einem Verzeichnis mit all seinen Unterverzeichnissen zu finden und aufzulisten.

find /var/www/ -type f -exec stat --format '%Y :%y %n' {} \; | sort -nr | cut -d: -f2- | head

Gibt es ein Windows CLI-Äquivalent?

JohnnyFromBF
quelle
Suchen Sie nur geänderte Dateien? Oder sehen Sie sich alle Dateien an?
Keltari
1
Ich bin sicher, PowerShell kann dies weitaus einfacher als Batch, aber wenn Sie Letzteres unbedingt verwenden müssen ... Versuchen Sie dir /a-d /o-d /tw /s(nur Dateien anzeigen, nach absteigendem Datum sortieren, letzte Schreibzeit zum Sortieren verwenden, in Unterverzeichnisse zurückgreifen). Dadurch werden jedoch alle Dateien aufgelistet. Verwendung n neuesten geänderten Dateien nur, um die Liste zu begrenzen dbenham ‚s brillante Lösung hier .
Karan
Ein paar Kommentare zum Linux-Befehl: (1) Stattdessen -execmöchten Sie vielleicht überlegen xargs. (2) Wenn Sie, wie Sie sagen, einen gesamten Verzeichnis- (Unter-) Baum nach Änderungsdatum sortieren möchten (und dann das neueste N betrachten möchten ), ist das, was Sie haben, vernünftig. Wenn Sie jedoch die benötigten Informationen erhalten, indem Sie alle Dateien finden, die in den letzten N Tagen geändert wurden , schauen Sie sich an find … -mtime ….
Scott
2
Um meinen vorherigen Kommentar zu ergänzen, können Sie auch nachsehen forfiles /s /d +<date>.
Karan

Antworten:

21

PowerShell 2.0

Die letzten 10 geänderten Dateien

Dir C:\folder -r | ? {! $_.PSIsContainer} | sort LastWriteTime | select -last 10

Geänderte Dateien seit dem angegebenen Datum

Dir C:\folder -r | ? {! $_.PSIsContainer -AND $_.lastwritetime -ge '04/18/14'} 

Lesen Sie mehr unter http://ss64.com/ps/

Nixda
quelle
Wenn Sie nur die Verzeichnisse mit geänderten Dateien anzeigen möchten, tun Sie dies. Dir d: \ sftp -r | ? {! $ _. PSIsContainer -AND $ _. Lastwritetime -ge '05 / 25/2018 '} | findstr Directory
Rob
0
dir c:\windows\ /aa /s /O-D

Listet alle Dateien mit dem Archivattributsatz (geändert) im Ordner c: \ windows und alle zugehörigen Unterordner nach Datum auf (neueste zuerst).

Bearbeiten: Diese Methode funktioniert nur, wenn Sie die Archivbits irgendwann löschen oder die Liste einfach wächst und wächst.

Keltari
quelle
1
Was hat das Archivattribut mit kürzlich geänderten Dateien zu tun?
Karan
1
Alles . Jede Datei, die geändert wird, erhält das vom Betriebssystem festgelegte Archivattribut. So wissen Sicherungsprogramme, dass sich eine Datei geändert hat und gesichert werden muss.
Keltari
3
Ihre Bearbeitung ist äußerst wichtig. Dateien mit + A werden bereits nicht geändert. Warum nicht einen Weg finden, dies basierend auf dem Änderungsdatum zu tun?
Karan
0

Schauen Sie sich MT Directory Changes Watcher an. Vielleicht ist es richtig für Ihre Bedürfnisse.

Das Programm sucht nach Dateiänderungen in einem bestimmten Verzeichnis (Verzeichnis überwachen) und kopiert dann geänderte Dateien in einen anderen Ordner (Spiegelverzeichnis), wobei die Verzeichnisstruktur gespeichert wird. Dies kann sehr nützlich sein, wenn Sie eine lokale Kopie der Remote-Site haben und nur Dateien hochladen möchten, die nach dem letzten Upload lokal geändert wurden.

http://mito-team.com/projects/dcw

MiSHuTka
quelle