Erweiterung der Antwort von user195696 :
find . -type f -printf "%T@\t%Tc %6k KiB %p\n" | sort -n | cut -f 2-
Für jede Datei wird zuerst der numerische Zeitstempel ausgegeben (für die Sortierung nach, gefolgt von der Tabellierung \t
), dann ein menschenlesbarer Zeitstempel, dann die Dateigröße (leider kann find
nicht in mebibytes, nur kibibytes), dann der Dateiname mit relativem Pfad.
Dann -printf
sortiert es nach dem ersten numerischen Feld.
Dann sort -n
entsorgt das erste numerische Feld, das den Benutzer nicht interessiert. (Ab dem zweiten Feld wird gedruckt.) Der Standard-Feldtrenner ist cut
oder Tabulierung.
Beispiel für die Ausgabe:
Thu 06 Feb 2014 04:49:14 PM EST 64 KiB ./057_h2_f7_10/h2_f7_10.class
Fri 07 Feb 2014 02:08:30 AM EST 7962976 KiB ./056_h2_f7_400/h2__rh_4e-4.mph
Fri 07 Feb 2014 02:23:24 AM EST 7962976 KiB ./056_h2_f7_400/h2_f7_400_out_Model.mph
Fri 07 Feb 2014 02:23:24 AM EST 0 KiB ./056_h2_f7_400/h2_f7_400_out.mph.status
Fri 07 Feb 2014 02:23:24 AM EST 64 KiB ./056_h2_f7_400/1579678.out
Fri 07 Feb 2014 03:47:31 AM EST 8132224 KiB ./057_h2_f7_10/h2__rh_1e-5.mph
Fri 07 Feb 2014 04:00:49 AM EST 8132224 KiB ./057_h2_f7_10/h2_f7_10_out_Model.mph
Fri 07 Feb 2014 04:00:49 AM EST 0 KiB ./057_h2_f7_10/h2_f7_10_out.mph.status
Fri 07 Feb 2014 04:00:49 AM EST 64 KiB ./057_h2_f7_10/1579679.out
Fri 07 Feb 2014 09:47:18 AM EST 9280 KiB ./056_h2_f7_400/h2__rh_4e-4.mat
Fri 07 Feb 2014 10:51:23 AM EST 9728 KiB ./018_bidomain/h2_plain__rh_1e-5.mat
Fri 07 Feb 2014 10:58:33 AM EST 9568 KiB ./057_h2_f7_10/h2__rh_1e-5.mat
Fri 07 Feb 2014 05:05:38 PM EST 64 KiB ./058_h2_f7_stationary/h2_f7_stationary.java
Fri 07 Feb 2014 06:06:29 PM EST 32 KiB ./058_h2_f7_stationary/slurm.slurm
Sat 08 Feb 2014 03:42:07 AM EST 0 KiB ./058_h2_f7_stationary/1581061.err
Sat 08 Feb 2014 03:42:14 AM EST 64 KiB ./058_h2_f7_stationary/h2_f7_stationary.class
Sat 08 Feb 2014 03:58:28 AM EST 70016 KiB ./058_h2_f7_stationary/h2s__rh_1e-5.mph
Sat 08 Feb 2014 04:12:40 AM EST 70304 KiB ./058_h2_f7_stationary/h2s__rh_4e-4.mph
Sat 08 Feb 2014 04:12:53 AM EST 70304 KiB ./058_h2_f7_stationary/h2_f7_stationary_out_Model.mph
Sat 08 Feb 2014 04:12:53 AM EST 0 KiB ./058_h2_f7_stationary/h2_f7_stationary_out.mph.status
Sat 08 Feb 2014 04:12:53 AM EST 32 KiB ./058_h2_f7_stationary/1581061.out
Mon 10 Feb 2014 11:40:54 AM EST 224 KiB ./058_h2_f7_stationary/h2s__rh_4e-4.mat
Mon 10 Feb 2014 11:42:32 AM EST 224 KiB ./058_h2_f7_stationary/h2s__rh_1e-5.mat
Mon 10 Feb 2014 11:50:08 AM EST 32 KiB ./plot_grid.m
Ich habe das Feld für die Dateigröße absichtlich 6 Zeichen lang gemacht, denn wenn man es länger macht, wird es schwer, visuell zu unterscheiden, wie groß die Dateien sind. Auf diese Weise ragen Dateien, die größer als 1e6 KiB sind, heraus: bei 1 Zeichen bedeutet das 1-9 GB, bei 2 Zeichen 10-99 GB, usw.
Bearbeiten: hier ist eine andere Version (da \t
auf MinGW/MSYS abstürzt):
find . -type f -printf "%T@\t%p\n" | sort -n | cut -f 2- | xargs -I{} ls -Glath --si {}
Ergibt Ausgaben wie:
-rw-r--r-- 1 es 23K Jul 10 2010 ./laptop_0000071.jpg
-rw-r--r-- 1 es 43M Jul 29 19:19 ./work.xcf
-rw-r--r-- 1 es 87K Jul 29 20:11 ./patent_lamps/US Patent 274427 Maxim Lamp Holder.jpg
-rw-r--r-- 1 es 151K Jul 29 20:12 ./patent_lamps/Edison screw-in socket.png
-rw-r--r-- 1 es 50K Jul 29 20:13 ./patent_lamps/1157 Lamp.jpg
-rw-r--r-- 1 es 38K Jul 29 20:14 ./patent_lamps/US06919684-20050719-D00001.png
Wo:
find . -printf "%Tc"
bewirkt, dass das Auftreten von -I{}
durch ein Argument ersetzt wird, und Zeilenumbrüche sind jetzt die Argumenttrenner (beachten Sie die Leerzeichen in den Dateinamen oben).
{}
unterdrückt die Ausgabe des Gruppennamens (Platzverschwendung).
ls -G
erzeugt menschenlesbare Dateigrößen (korrekter mit ls -h --si
).
--si
sortiert nach Zeit, was hier irrelevant ist, aber das ist es, was ich typischerweise verwende.