Dies ist eine rekursive Version (d. h. es findet die zuletzt aktualisierte Datei in einem bestimmten Verzeichnis oder einem seiner Unterverzeichnisse)
find /dir/path -type f -printf "%[email protected] %p\n" | sort -n | cut -d' ' -f 2- | tail -n 1
Kurze Laien-Erklärung der Kommandozeile:
find /dir/path -type f
findet alle Dateien im Verzeichnis-printf "%[email protected] %p\n"
druckt eine Zeile für jede Datei, in der%[email protected]
ist die Float-Sekunde seit der Epoche 1970 und%p
ist der Dateinamenspfad und\n
ist das Zeilenumbruchzeichen- Weitere Informationen finden Sie unter
man find
|
ist eine Shellpipe
(sieheman bash
Abschnitt zuPipelines
)sort -n
bedeutet, nach der ersten Spalte zu sortieren und das Token als numerisch statt als lexikographisch zu behandeln (sieheman sort
)cut -d' ' -f 2-
bedeutet, jede Zeile mitman cut
)- HINWEIS:
-f 2
würde nur das zweite Token drucken
- HINWEIS:
tail -n 1
bedeutet, die letzte Zeile zu drucken (sieheman tail
)
ls -Art | tail -n 1
Dadurch wird die zuletzt geänderte Datei oder das zuletzt geänderte Verzeichnis zurückgegeben. Nicht sehr elegant, aber es funktioniert.
Verwendete Flags:
-A
listet alle Dateien außer .
auf und ..
-r
umgekehrte Reihenfolge beim Sortieren
-t
nach Zeit sortieren, neueste zuerst
ls -t | head -n1
Dieser Befehl gibt tatsächlich die zuletzt geänderte Datei oder das Verzeichnis im aktuellen Arbeitsverzeichnis aus.