Verwenden Sie find -mmin, um Dateien mit zukünftiger Änderungszeit zu finden


9

ich kann nutzen

find . -mmin -5

um Dateien zu finden, die in den letzten 5 Minuten geändert wurden. Wenn ich jedoch versuche, Dateien mit Änderungszeit in der Zukunft zu finden, indem ich eine negative Zahl gebe, findlehnt dies ab:

find . -mmin --1

Gibt es eine Möglichkeit, dem Standard-Linux in Zukunft Änderungszeit zu geben find?

Antworten:


9

Verwenden Sie Folgendes, um Dateien zu finden, die mindestens 5 Tage in der Zukunft geändert wurden:

find . -newermt "5 days"

Die Syntax für die Zeitangabe entspricht der für date -d. Siehe man findfür Informationen über den Schalter genannt -newerXYfür weitere Informationen.

Es ist nicht möglich, zB dazu -mminzu verwenden. Es wurde als Fehler gegen GNU find gemeldet und durch Implementierung -newerXYin findutils 4.3.3 (~ 2007) behoben, wie ich oben gezeigt habe.


Anscheinend wurde nicht der GNU-Fund verwendet, sondern BusyBox.

Sie sollten dann in der Lage sein, eine temporäre Datei mit touch -dund einem Datum in der Zukunft zu erstellen und dann den -newerSchalter für findFolgendes zu verwenden:

touch -d "+5 days" tmpfile
find . -newer tmpfile

BusyBox touchunterstützt dieses Datumsformat nicht, aber das Prinzip ist dasselbe und seine findUnterstützung -newer. Das Erstellen der Referenzdatei mit einem korrekten Datum bleibt dem Leser als Übung (immer bequem zu schreiben).


Vielen Dank. Mein Problem ist, dass mein Fund ein alter eingebetteter BusyBox-Fund ist und kein binutil-Fund. Anscheinend funktioniert der Standard-Linux-Weg hier nicht. :(
— Muxecoid

@Muxecoid: Ich habe meine Antwort mit einigen BusyBox-Bemerkungen aktualisiert.
— Daniel Andersson

Dies ersparte mir nur Probleme auf einem neuen Computer, auf dem ich versehentlich zehn Stunden in der Zukunft gearbeitet hatte (Zeitzonenversatz wurde auf eine bereits versetzte Hardware-Uhr angewendet), und nach dem Reparieren der Uhr configurebeschwerte sich ein Skript über zukünftige Dinge (durch einen noch anderthalb Stunden): find . -newermt '1 hour' | xargs touch -d '-9 hours'und ich kann weitermachen. :-)
— Chris Morgan
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.