Holen Sie sich Ordner (oder sub-Dateien/Ordner) Letzte änderung Datum und Zeit
Ist es möglich, das änderungsdatum und-Zeit eines Ordners?
Ich weiß, Sie können stat -f "%m" folder
, aber es spiegelt nicht in sub-Dateien/Ordnern ändert.
Dinge, die nicht funktionieren:
ls -l folder
- keine änderungen im Ordnerstat -f "%m" folder
- wie obendate -r folder
- wieder dasselbefind foo bar baz -printf
- dieprintf
option existiert nicht auf meiner version finden
Versionen der Dinge:
- OS: Mac OS X 10.7.1
- Bash: GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin11)
- Versuchen Sie, die Antworten, die hier aufgelistet: stackoverflow.com/questions/4997242/...
- Keiner von Ihnen arbeiten als die
printf
option ist nicht implementiertfind
in Mac OS X 10.7.1 - Sind Sie auf der Suche für die zuletzt geänderte Datei oder ein Verzeichnis in ein bestimmtes Verzeichnis? Wie rekursive wollen Sie bekommen?
- Ich bin mehr vertraut mit den GNU/Linux-Seite der Dinge, im Gegensatz zu BSD-Geschmack.
find -printf
ist oft nützlich, aber fehlt, dass Sie vielleicht könnte man mit einemls -lRt | head -n 1
(-t
für mtime Sortieren-R
für ein Rekursives listing) - 1) Jup 2) Etwa 6 Ebenen tief
- Ja, aber diese Art es das erste mal von parent-directory und nicht nur Datum/Zeit
- ja, du hast Recht.
ls
ist nicht wirklich der beste Weg zu gehen darüber sowieso. Vielleicht so etwas wiefind -execdir stat -f '%m %N' \{} \; | sort -nr | head -n 1
zu ersetzenfind -printf
. In diesem Beispiel würde noch hinzufügen müssen null-terminatoren, um alle Datei-Namen korrekt, aber die Allgemeine Idee, die funktionieren sollte. - sah nicht, Ihren Kommentar vor dem posten meine Antwort, aber wir finden fast die gleiche Lösung. Danke für Eure Hilfe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lösung:
Erklärung:
find
Befehl durchläuft das aktuelle Verzeichnis (.
) und für jede Datei aufgetreten ausgeführt (-exec
) den Befehlstat -f "%m"
.stat -f "%m"
druckt die Letzte änderung unix-timestamp der Datei.sort -n -r
sortiert die Ausgabe derfind
Befehl numerisch (-n
) in umgekehrter Reihenfolge (-r
). So Listen Sie die neuesten modification timestamp ersten.head -1
extrahiert dann die erste Zeile der Ausgabe vonsort
. Dies ist die Letzte änderung unix-timestamp aller Dateien.Könnten Sie versuchen, 'date -r Ordner" geben Sie ein Datum zuletzt geändert
-r seconds Print the date and time represented by seconds, where seconds is the number of seconds since the Epoch (00:00:00 UTC, January 1, 1970; see time(3)), and can be specified in decimal, octal, or hex.
date
scheint das zu sein, was Sie sich beziehen, während in BSDdate
(der Geschmack von Mac OS X verwendet), es verhält sich wie zitiert in Tyilo KommentarKonnte man immer bekommen es von
ls
: