Angenommen, ich habe ein Verzeichnis wie /home/user/
.Liste der Dateien nach zuletzt bearbeitetem Datum
Wie kann ich JEDE Datei (auch in Unterverzeichnissen) unter diesem Ordner auflisten und nach dem Datum der letzten Bearbeitung sortieren?
Angenommen, ich habe ein Verzeichnis wie /home/user/
.Liste der Dateien nach zuletzt bearbeitetem Datum
Wie kann ich JEDE Datei (auch in Unterverzeichnissen) unter diesem Ordner auflisten und nach dem Datum der letzten Bearbeitung sortieren?
Sie verwenden können:
$ ls -Rt
wo -R
bedeutet rekursive (Unterverzeichnisse) und -t
Mittel "sortiert nach Datum der letzten Änderung".
Wenn Sie eine Master-Liste möchten, in dem alle Dateien zusammen nach Änderungsdatum sortiert sind, zeigt das Verzeichnis sie sind in, aber nicht Verzeichnis gruppiert, können Sie diese verwenden:
find . -type f -printf "%-.22T+ %M %n %-8u %-8g %8s %Tx %.8TX %p\n" | sort | cut -f 2- -d ' '
Das Ergebnis sieht viel wie ls -l
:
-rw-r--r-- 1 root root 3892 08/11/2009 11:03:36 /usr/share/man/man1/xmllint.1.gz -rw-r--r-- 1 root root 22946 08/13/2009 11:59:20 /usr/share/man/man1/curl.1.gz -rw-r--r-- 1 root root 728 08/17/2009 12:06:33 /usr/share/man/man1/thunderbird.1.gz -rw-r--r-- 1 root root 873 08/18/2009 10:52:47 /usr/share/man/man1/libgnutls-config.1.gz -rw-r--r-- 1 root root 2552 08/19/2009 02:00:34 /usr/share/man/man3/Purple.3pm.gz -rw-r--r-- 1 root root 9546 08/19/2009 02:02:00 /usr/share/man/man1/pidgin.1.gz -rw-r--r-- 1 root root 2201 08/19/2009 02:02:46 /usr/share/man/man3/Pidgin.3pm.gz -rw-r--r-- 1 root root 926 08/19/2009 02:03:05 /usr/share/man/man1/purple-remote.1.gz -rw-r--r-- 1 root root 18052 08/19/2009 04:11:47 /usr/share/man/man1/mono.1.gz -rw-r--r-- 1 root root 1845 08/19/2009 04:11:47 /usr/share/man/man5/mono-config.5.gz
Für die von Mac OS X verwenden, Option -printf nicht auf BSD finden ist (Sie werden diese Fehlermeldung erhalten: find: -printf: unknown primary or operator
). Zum Glück können Sie GNU durch Homebrew finden Install (es soll eine Option, um Fink und Macports als auch sein):
brew install findutils
Nachdem es das GNU installieren finden sollte als gfind
Sie zur Verfügung. Alles, was Sie tun müssen, ist die obige Zeile zu ändern:
gfind . -type f -printf "%-.22T+ %M %n %-8u %-8g %8s %Tx %.8TX %p\n" | sort | cut -f 2- -d ' '
Nice one. Das ganze Verzeichnis Gruppierungsding mit ls -R ist nervig. –
Ausgezeichnetes Stück Code, danke! –
Großartiger Code, dauerte das Skript ca.. 5 Sekunden zum Sortieren und Ausdrucken von 13k-Fotos in vielen verschiedenen Ordnern (über Cygwin auf einem ziemlich langsamen Computer). – Magnus
Danke, das ist perfekt. Ich habe auch dort ein -l hinzugefügt, damit ich die Daten sehen kann, also für jeden, der das später herausfindet, ist es - $ ls -lRt – Marty
Wenn Sie dies an der Eingabeaufforderung tun und die meisten sehen möchten kürzlich geänderte Dateien, betrachten 'ls -lrt [RhA]'. das '-r' kehrt die Sortierreihenfolge um und lässt gerade bearbeitete Sachen am Ende der Liste zurück ... – dmckee
Diese hinzugefügt zu einem' -ila' gibt Ihnen so ziemlich alle Informationen, die Sie benötigen würden. '$ ls -ilArt' – Falkenfighter