Laut GNU scheint das Änderungsdatum nur auf die zweite Ebene genau zu sein. Ich habe ein sehr schnelles System, das viele Dateien in ein Verzeichnis (mit Millisekunden-Rate) generiert. Ich versuche, die erzeugten neuen Dateien zu überwachen und die Dateinamen dem Terminal anzuzeigen.In Linux, wie findet man Dateien mit Änderungsdatum nicht älter als eine bestimmte Datei?
Derzeit bin ich mit
touch .file
sleep 1
find -type f -newer .file
Dateien zu finden, die geändert werden, nachdem .file
erstellt wurde. Da das System jedoch mit sehr hoher Frequenz ausgeführt wird, scheint die Option -newer
in find
Dateien, die zur gleichen "Zeit" (genau wie in Sekunden) geändert wurden, nicht wie neu abzufangen touched
.file
. Um zu erläutern, was ich meine, sagen wir, habe ich die Datei unter 01:02:03 AM
berührt, wird eine neue Datei erzeugt bei 01:02:03:02 AM
(02 Millisekunden nach der .file
). find
ignoriert die Millisekunde und kommt zu dem Schluss, dass sie zur selben Zeit erstellt werden. Daher ist diese neue Datei nicht newer
als .file
, daher ignoriert.
Was ist ein Weg? Ich denke an die Verwendung ! -older
, leider find
hat keine solche Option. Ich möchte vermeiden, meine eigene Version von find
zu schreiben, um Code-Größe zu speichern. Irgendwelche Vorschläge?
Was ist mit "-nicht"? –
Änderungszeiten sind nicht und sollten nicht als atomare Transaktions-IDs behandelt werden. Können Sie verarbeitete Dateien verschieben/umbenennen, sodass Sie immer wissen, welche ausstehen? –
@thatotherguy Ich mag diese Idee wirklich. Leider sollten diese Dateien schreibgeschützt bleiben. Gibt es eine andere Möglichkeit, die Dateien zu markieren, ohne sie zu berühren? –