2009-04-09 13:17:20 +0000 2009-04-09 13:17:20 +0000
1422
1422

Wie kann ich die Ausgabe von 'ls' nach dem Datum der letzten Änderung sortieren?

Wie kann ich die Ausgabe von ls nach dem Datum der letzten Änderung sortieren?

Antworten (10)

1687
1687
1687
2009-04-09 13:20:44 +0000
ls -t

oder (für die Umkehrung, das Neueste ganz unten):

ls -tr

Die ls man page beschreibt dies genauer und führt weitere Optionen auf.

155
155
155
2010-04-06 14:44:45 +0000

Versuchen Sie dies: ls -ltr. Damit erhalten Sie die letzte bis zum Ende der Liste

48
48
48
2012-04-15 20:23:29 +0000

Für eine vollständige Antwort benutze ich Folgendes: ls -lrth

Geben Sie dies in Ihr Startskript /etc/bashrc ein und weisen Sie einen Alias wie diesen zu: alias l='ls -lrth' Starten Sie Ihr Terminal neu, und Sie sollten in der Lage sein, l einzugeben und eine lange Liste von Dateien zu sehen.

31
31
31
2013-07-19 11:01:24 +0000

Irgendwann benutze ich das hier:

find . -type f -mmin -5 -print0 | xargs -0 /bin/ls -tr

oder

find . -type f -mmin -5 -print0 | xargs -0 /bin/ls -ltr

, um rekursiv nachzusehen, welche Dateien in den letzten 5 Minuten geändert wurden.

… oder jetzt, mit der neuesten Version von GNU find:

find . -type f -mmin -5 -exec ls -ltr {} +

… und sogar für die _nicht Beschränkung auf Dateien:

find . -mmin -5 -exec ls -ltrd {} +

(beachten Sie den Wechsel von -d zu ls, um den Inhalt von Verzeichnissen nicht anzuzeigen)

robusterer Weg?

Schauen Sie sich meine Antwort auf finden und sortieren nach Änderungsdatum an

22
22
22
2012-04-15 18:41:06 +0000

Hinzufügen:

alias lt='ls -Alhtr'

in $homedir/.bashrc

18
18
18
2017-07-26 07:21:37 +0000

Mnemonic

Um Einträge, die mit . beginnen, nicht zu ignorieren und nach Datum zu sortieren (neueste zuerst):

ls -at

Um Einträge, die mit . beginnen, nicht zu ignorieren und nach Datum rückwärts zu sortieren (älteste zuerst):

ls -art

Um Einträge, die mit . beginnen, nicht zu ignorieren, verwenden Sie ein langes Listenformat und nach Datum sortieren (neueste zuerst):

ls -alt

Ignorieren Sie für die Druckausgabe in menschenlesbarer Größe keine Einträge, die mit . beginnen, verwenden Sie ein langes Listenformat und sortieren Sie nach Datum (neueste zuerst) (@EvgeniSergeev-Hinweis):

ls -halt

aber ** seien Sie vorsichtig mit dem letzten** , da ein einfacher Tippfehler einen Serverabsturz verursachen kann. .. (@Isaac-Anmerkung)

16
16
16
2013-11-11 16:11:57 +0000

Alle Dateien auf dem Dateisystem finden, die vor maximal 3 * 24 Stunden (3 Tagen) bis jetzt geändert wurden:

find / -ctime 3
12
12
12
2016-03-06 18:21:16 +0000

Um die 10 jüngsten nach Datum sortiert anzuzeigen, benutze ich so etwas wie:

ls -t ~/Downloads | head -10

oder um die ältesten

ls -tr ~/Downloads | tail -10
``` anzuzeigen
9
9
9
2014-06-15 21:47:51 +0000

Nur sehr grundlegende Unix-Befehle verwenden:

ls -nl | sort -k 8,8n -k 6,6M

Dies funktionierte unter Linux; Spalte 8 ist “n” (numerisch), Spalte 6 ist “M”, Monat.

Ich bin neu bei sort, daher könnte diese Antwort wahrscheinlich verbessert werden. Ganz zu schweigen davon, dass es zusätzliche Optionen zu ls und sort braucht, um exakte Zeitstempel zu verwenden, aber das wird nicht jeder brauchen.

-1
-1
-1
2020-02-28 11:04:14 +0000

Ein möglicher Weg, zum Beispiel die letzten 10 modifizierten Dateien anzuzeigen, ist folgender Befehl:

ls -lrth | tail -n 10

Beschreibung des obigen Befehls:

ls - list

Argumente:

l - long
r - reverse
t - sort by time
h - human readable

dann wird es an den Befehl tail weitergeleitet, der nur 10 letzte Zeilen anzeigt, definiert durch den n Parameter (Anzahl der Zeilen)…