2013-03-28 8 views

Antwort

149

Versuchen Kopf oder Schwanz mit. Wenn Sie die 5 am meisten kürzlich geänderten Dateien wollen:

ls -1t | head -5 

Die -1 (das ist eine Eins) sagt eine Datei pro Zeile und der Kopf sagt, die ersten 5 Einträge nehmen.

Wenn Sie die letzten 5 wollen versuchen

ls -1t | tail -5 
+2

Wenn ich mich nicht irre, stellt die Shell die Ausgabe von "ls" in mehreren Spalten dar, aber die Ausgabe von "ls" wird an folgenden Befehl mit 1 Datei/Verzeichnis zu einer Zeit – Alex

+0

weitergeleitet, die anscheinend der Fall ist. Schöne Vereinfachung. –

+3

Dies ignoriert die Summe an der Spitze: 'ls -1t | Kopf -n 6 | tail -n 5' – Ryan

11

Verwenden tail Befehl:

ls -t | tail -n 5 
2

ls -t Liste Dateien, die von Erstellungszeit nicht geändert Zeit dauern. Verwenden Sie ls -ltc, wenn Sie Dateien nach der letzten Änderungszeit vom letzten zum ersten (von oben nach unten) auflisten möchten. So die letzten n zur Liste: ls -ltc | head ${n}

+1

Auf welche Plattform/Version beziehen Sie sich? Können Sie einen Link bereitstellen? Ein Blick auf die [linux man-page] (http://man7.org/linux/man-pages/man1/ls.1.html) ergibt das Gegenteil von dem, was Sie sagen: '-t nach Modifikationszeit sortieren, neueste zuerst – Joma

0

Die akzeptierte Antwort listet nur die Dateinamen, aber die Top-5-Dateien kann man auch benutzen Sie:

ls -lht | head -6

wo:

-l Ausgänge ein Listenformat

macht Ausgabe lesbar (dh Dateigrößen erscheinen in kb, mb, etc.)

-t Sorten Ausgabe von zuletzt geänderte Datei

head -6 zeigen 5 Dateien, weil ls druckt die Blockgröße in der ersten Zeile der Ausgabe zuerst platzieren.

Ich denke, das ist ein etwas eleganter und möglicherweise sinnvoller Ansatz.

Beispiel Ausgabe:

total 26960312 [email protected] 1 user staff 1.2K 11 Jan 11:22 phone2.7.py [email protected] 1 user staff 2.7M 10 Jan 15:26 03-cookies-1.pdf [email protected] 1 user staff 9.2M 9 Jan 16:21 Wk1_sem.pdf [email protected] 1 user staff 502K 8 Jan 10:20 lab-01.pdf [email protected] 1 user staff 2.0M 5 Jan 22:06 0410-1.wmv