Ich möchte also ( ls
zum Beispiel über) alle Dateien anzeigen , die in den letzten sieben Tagen geändert wurden. Wenn ich mich in meinem docroot-Ordner befinde, sollte es in der Lage sein, "tiefer" zu schauen.
Beispielsweise:
File Last changed
docroot
|- myfile1 30.11.2015
|- myfile2 10.11.2015
|- MySub
|-sub1 30.11.2015
|-sub2 10.11.2015
Also sollte der ls
(oder was auch immer passt) ausgeben myfile1
und (wenn möglich)
MySub/sub1
.
Ist das mit einem Befehl machbar?
command-line
search
ls
DasSaffe
quelle
quelle
find
Es gibt einels
Option, die Sie einfachfind . -type f -mtime -7 -ls
find ... -exec ls -l {} +
wasls -l
viel effizienter abläuft - weniger Male mit mehreren Parametern. Dies ist eine Standardoptionfind
von POSIX.Mit
zsh
:**/*
sucht ab dem aktuellen Verzeichnis rekursiv nach Dateien(.m-7)
ist das Glob-Qualifikationsmerkmal, bei dem es sich.
um eine reguläre Datei handelt undm-7
um Dateien, die innerhalb der letzten 7 Tage geändert wurdenquelle
Der folgende Befehl ist unter Mac OS X ein Traum - vielleicht auch unter Ubuntu ...
Dies findet Dateien im aktuellen Verzeichnisbaum, die in den letzten 7 Tagen geändert wurden, gibt das Änderungsdatum + die Uhrzeit und den Pfad aus, wobei die neuesten zuerst sortiert werden.
Beispielausgabe:
Für Feedback von Ubuntu-Usern wäre ich dankbar.
quelle
Nicht genau das, wonach gefragt wurde ... aber viel leichter zu merken ...
oder
quelle
7 Tage, das sind 60 Sekunden * 60 Minuten * 24 Stunden * 7 Tage = 604800 Sekunden
Finden Sie das aktuelle Datum in Sekunden heraus (Unix-Epochenzeit):
Subtrahiere die 7 Tage in Sekunden:
Nehmen Sie nun
stat
Befehls- und Druckstatistiken für alle Dateien im Format "Name + Zeit in Sekunden" und verwenden Sie dieseawk
, um diejenigen Dateien abzuschneiden, deren Änderungszeit größer als das von uns berechnete Datum istBesonders interessant sind die letzten 3 Dateien, da ich weiß, dass ich sie vor weniger als 7 Tagen bearbeitet habe. So weiß ich, dass es funktioniert
quelle
awk '$2 > 1448271265 {print $0}'
direkt sagen könnenawk '$2 > 1448271265'
. Unter der Bedingung true druckt awk die aktuelle Zeile als Standardaktion.