[linux-l] Dateien finden, die genau am Tag YYYY-MM-DD veraendert wurden

Jan-Benedict Glaw jbglaw at lug-owl.de
Mi Mai 9 07:41:08 CEST 2007


On Wed, 2007-05-09 04:35:33 +0200, Sven Guckes <maillist-belug at guckes.net> wrote:
> aufgabe:
> auffinden und ausgabe aller dateien,
> die am tag YYYY-MM-DD veraendert wurden.
[...]
> mithilfe der option "-daystart" wird die bezugszeit
> auf den aktuellen tagesstart gesetzt, so dass wir
> dadurch wirklich den gesmaten tag zwischen
> 0uhr und 24uhr bezeichnen koennen.  dieses
> teilproblem waere also schonmal geloest.
> 
> nur muss man dann den abstand zwischen heute und
> des angegebenen datum YYYY-MM-DD selber berechnen,
> damit man das geeignete N auch benutzen kann.

Das ist mit GNU date ganz einfach, siehe die Beispiele in den anderen
Mails.

> und genau da ist der eigentliche haken an der sache:
> natuerlich kann man dies ueber eine funktion berechnen
> lassen - aber die direkte angabe des datum waere einfacher.

Irgendwas ist ja immer...  Ach ja, nicht jeder Tag hat genau 86400
Sekunden. In gaaanz seltenen Fällen kommt mal eine Schaltsekunde dazu
oder wird abgezogen.

> nun habe ich ein paar minuten damit herumgespielt
> und bin schliesslich darauf gekommen, um dateien zu finden,
> deren "modification time" bis zu drei tage alt ist.
> 
>   $ ls -tl `find -daystart -maxdepth 1 -type f -mtime -3 ` | less
> 
> das "-maxpdepth 1" beschraenkt die suche erstmal
> auf das aktuelle verzeichnis - das reicht schon.
> (diese option sollte noch vor dem "-type f"
> fuer "nur regulaere dateien" stehen,
> weil "find" sonst eine warnung ausspuckt.)
> und "less" faengt die ausgabe dann auf.
> 
> das ganze ist ja schonmal ganz brauchbar - aber
> es passt nicht ganz auf das gegebene problem.
> 
> wie beschraenkt man das ganze auf jene dateien,
> die *nur* am drittletzten tag veraendert wurden?

Ein Script drumherum wirds brauchbarer machen. Aber Du warst schon
fast fertig, ohne den letzten Gedankenblitz zu haben. `find' iteriert
durch alle Dateien/Verzeichnisse/... und testet der Reihe nach gegen
die Einschränkungen, die Du mitgibst. Warum gibtst Du nicht einfach
noch mit, daß die Datei _nicht_ in den letzten zwei Tagen geändert
worden sein darf?

Ungetestet:
 
$ find . -maxdepth 1 -type f \( -daystart -mtime -3 \) \
	-a \! \( -daystart -mtime -2 \)

MfG, JBG

-- 
      Jan-Benedict Glaw      jbglaw at lug-owl.de              +49-172-7608481
Signature of:         Alles wird gut! ...und heute wirds schon ein bißchen besser.
the second  :
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: Digital signature
URL         : <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/20070509/2b83cc00/attachment.sig>


Mehr Informationen über die Mailingliste linux-l