Ich befinde mich im Stammordner und muss die letzten 10 geänderten Dateien nur dieses Ordners finden. Jedes Mal, wenn ich -mtime eingebe, wie mein Dozent sagte, erhalte ich 10 Tage. Ich brauche die letzten 10 geänderten Dateien, nicht die letzten 10 Tage. Ich habe versucht, -my time zu finden, my time wurde mit tail weitergeleitet. Ich erhalte eine lange Liste aller geänderten Dateien der letzten 10 Tage. Ich brauche nur die letzten 10 geänderten Dateien des Stammverzeichnisses.
Antwort1
ls -t | head
sollte funktionieren, solange die Dateinamen keine Zeilenumbrüche enthalten.
ls -t
sortiert nach Zeit, mit den neuesten Dateien zuerst. head
Behält nur die ersten 10 Zeilen.
Wenn Sie weitere Einzelheiten wünschen, können Sie verwenden ls -lt
. Dadurch wird jedoch eine zusätzliche Zeile mit der Gesamtgröße vorangestellt, sodass Sie benötigen ls -lt | head -n 11
.
Wenn Sie versteckte Dateien einschließen möchten, können Sie verwenden ls -At | head
. ( ls -A
, oder --almost-all
für GNU ls: schließt versteckte Dateien außer .
und ein ..
.)
Beachten Sie, dass Ihnen hierdurch die letzten 10 Dateien aller Art, einschließlich Verzeichnisse, und nicht nur normale Dateien angezeigt werden.
Antwort2
In zsh
für die 10 regulären Dateien im aktuellen Arbeitsverzeichnis oder darunter, die zuletzt geändert wurden:
ls -ldt -- **/*(D.om[1,10])
In anderen Shells, aber vorausgesetzt, Sie verwenden ein aktuelles GNU-System:
find . -type f -printf '%T@:%P\0' |
LC_ALL=C sort -zrn |
LC_ALL=C sed -z 's/^[^:]*://;10q' |
xargs -r0 ls -ltd --
Wenn Sie Dateien in Unterverzeichnissen nicht berücksichtigen möchten, entfernen Sie das **/
in zsh
oder fügen Sie danach -maxdepth 1
das to hinzu .find
.
Um versteckte Dateien auszuschließen, entfernen Sie den D
Glob-Qualifizierer in zsh
oder ändern Sie die find
Zeile wie folgt:
LC_ALL=C find . -name '.?*' -prune -o -type f -printf '%T@:%P\0' |
Oder wenn auch Dateien in Unterverzeichnissen ausgeschlossen werden:
LC_ALL=C find . -maxdepth 1 ! -name '.*' -type f -printf '%T@:%P\0' |
Diese machen keine Annahmen darüber, welche Zeichen oder Nicht-Zeichen die Dateipfade enthalten könnten.