Datei Suche mit find zeitlich eingrenzen

Dateien können unter unixoide Betriebssysteme mit „find“ nach vielen Kriterien gesucht werden.

Shell :: Manual find

Shell :: Manual find


Suche nach Alter, Name, Benutzer, Typ und Größe sind standardmäßig vorhanden, aber wie werden Dateien in einem bestimmten Zeitraum gefunden?

Kleiner Trick, um die Datei Suche zeitlich einzugrenzen kurz notiert …

HinweisZeitliche Suchkriterien werden relativ zur aktuellen Zeit angegeben. Im Vergleich zu einer bestehende Datei können neuere Dateien mit der Option „-newerXY“ gesucht werden.

Angenommen ein Server hatte ein Zeitfenster zur Wartung am 4.2 von 2 bis 4 Uhr und wir möchten Wissen, welche Änderungen im Dateisystem vorgenommenen wurden.

Die geänderten Dateien in diesem Zeitraum können mit zwei Hilfsdateien durch find aufgelistet werden. Eine Datei mit dem älterem und eine mit neuerem Zeitstempel können mit „touch“ erstellt werden.

$ touch -t 1402040400 older.timestamp
$ touch -t 1402040200 newer.timestamp

Der Filter kann mit den beiden Dateien auf neuer „-newer“ und und älter „\! -newer“ (nicht neuer) angegeben werden.

Damit das Ergebnis auch verarbeitet werden kann „-exec“, wird die Datei der aktuelleren Zeitgrenze mit „\! -samefile older.timestamp“ herausgenommen.

$ find . -type f -newer newer.timestamp \! -newer older.timestamp \! -samefile older.timestamp

Oder gibt es noch bessere Möglichkeiten in der shell Dateien zeitlich einzugrenzen?

Tags:

Eine Antwort zu “Datei Suche mit find zeitlich eingrenzen”

  1. Leszek sagt:

    Netter Artikel, die eingrenzung mit der Zeit sieht vernünftig aus.
    Ich persönlich nutze für das auffinden von Konfigurationsdateien, gerade wenn man diese braucht und nicht immer direkt ersichtlich wird wo welche grafische Konfiguration nun auch wirklich abgespeichert wird, den Befehl

    find ~/.config -mmin 1

    Dieser gibt alle modifizierten Dateien im Verzeichnis ~/.config an die vor einer Minute erstellt oder neugeschrieben wurden.
    Es gibt noch die Möglichkeit mit -mtime eine spezielle Zeit als Eingrenzung zu benutzen. Richtig benutzt habe ich das bisher aber nicht.

Hinterlasse eine Antwort