2009-09-10 8 views

Antwort

128

Sie verwenden können:

$ ls -Rt 

wo -R bedeutet rekursive (Unterverzeichnisse) und -t Mittel "sortiert nach Datum der letzten Änderung".

+13

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

+3

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

+0

Diese hinzugefügt zu einem' -ila' gibt Ihnen so ziemlich alle Informationen, die Sie benötigen würden. '$ ls -ilArt' – Falkenfighter

64

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 

Mac OS X

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 ' ' 
+3

Nice one. Das ganze Verzeichnis Gruppierungsding mit ls -R ist nervig. –

+0

Ausgezeichnetes Stück Code, danke! –

+1

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

Verwandte Themen