Ich möchte, dass ein Linux-Befehl Dateien findet, die in den letzten n
Sekunden geändert wurden .
Gibt es ein Shell-Skript oder ein anderes Tool, das ich über die Befehlszeilenschnittstelle oder die GUI ausführen kann?
Verwenden Sie den Befehl find wie folgt:
find . -name "*.txt" -mtime -60s
So finden Sie alle *.txt
Dateien, die in den letzten 60 Sekunden geändert wurden.
find: missing argument to `-mtime'
. Ich kann jedoch das gewünschte Verhalten mit -mmin und einem Dezimalargument erhalten. Ich konnte in der Manpage keine Referenz für find finden, dies
als Argument verwendet werden könnte.-mtime
. "60s" ist auch keine gültige Option in POSIX oder GNU. Das Argument für-mtime
ist eine Zahl, die die Anzahl der 24-Stunden-Zeiträume angibt, vor denen eine Datei geändert wurde.Die Lösung mit mtime Sekundenangabe funktioniert nicht auf meinen Linux-Systemen, die
find --version
== verwendenfind (GNU findutils) 4.4.2
.Ich erhalte folgenden Fehler:
Ich kann jedoch
-mmin
(für geändert in den letzten m Minuten) verwenden und kann ein Dezimalargument aufnehmen; Im Folgenden werden z. B. Dateien aufgeführt, die in den letzten 30 Sekunden geändert wurden.Also zum Beispiel; Erstellen von Dateien, die zuletzt geändert wurden 1s, 6s, 11s, ... vor über 120 Sekunden, findet dieser Befehl:
Wenn Sie es also wirklich in Sekunden brauchen, können Sie Folgendes tun:
quelle
Ähnlich wie es Glenn vorgeschlagen hat, ist es möglicherweise einfacher, Folgendes zu tun, wenn Sie alle Änderungen in der Zeit finden möchten, in der ein Installationsprozess ausgeführt wurde:
Dann müssen Sie keine Zeitberechnung durchführen. Sie finden nur Dinge, die nach der Checkpoint-Datei geändert wurden.
quelle
Wenn Sie eine Version von find haben, die dies nicht unterstützt,
-mtime -60s
ist dies die bessere Lösungquelle
Der einfachste Weg dies zu tun ist:
Die
-mtime -60s
in einer Antwort erwähnte Option funktioniert bei vielen Versionen von nichtfind
, auch nicht im Jahr 2016. Für-newermt
uns ist sie eine viel bessere Option. Es können viele verschiedene Datums- und Zeitformate analysiert werden.Eine alternative Methode
mmin
ist die folgende:Diese Option funktioniert möglicherweise nicht bei allen
find
Versionen.quelle
Wenn Sie ein Verzeichnis auf Änderungen an Dateien überwachen, möchten Sie wahrscheinlich inotify-tools anstelle einer unendlichen Polling-Schleife verwenden.
quelle
Wenn Ihre Version von
find
keine Sekunden oder realen Werte akzeptiert, wie meine, verwenden Sie-mmin
, aber geben Sie 0 an, und alle Dateien werden in weniger als einer Minute geändert:quelle