Ungültiges Argument beim Ausführen des Befehls „find“ mit -exec und -mtime

Ungültiges Argument beim Ausführen des Befehls „find“ mit -exec und -mtime

Auf Centos trat eine ziemlich seltsame Fehlermeldung auf.

Ich habe versucht, diesen Befehl auszuführen:

find /tmp/something -type f -mtime +2h -exec cp '{}' /tmp/target \;

Und der Fehler, den ich habe:

find: invalid argument `-exec' to `-mtime'

Kann das „Finden“ bei anderen Distributionen anders sein?

Antwort1

-mtimewird tagelang verwendet. Wenn Sie 2 Stunden benötigen, prüfen Sie Folgendes:

find /tmp/something -type f -mmin +120 -exec cp '{}' /tmp/target \;

mmin gibt Minuten an, also filtert -mmin +120 diejenigen heraus, die vor mehr als 120 Minuten (2 Stunden) liegen. Aus dem Handbuch:

-mZeit n

Die Daten der Datei wurden zuletzt vor n*24 Stunden geändert. Lesen Sie die Kommentare zu -atime, um zu verstehen, wie sich die Rundung auf die Interpretation der Dateiänderungszeiten auswirkt.

-mmin n

Die Daten der Datei wurden zuletzt vor n Minuten geändert.

Antwort2

Die findImplementierung unter MacOS unterscheidet sich ein wenig von der unter Linux verfügbaren. Ich glaube, Sie haben den obigen Fehler auf einem Linux-System erhalten.

Unter Linux mtimewerden nur +- und eine Zahl akzeptiert. Die Zahl ist die Anzahl der Tage.

Für das, was Sie oben tun möchten, müssen Sie verwendenmmin

-mmin n
      File’s data was last modified n minutes ago.

Dieser Befehl sollte unter Linux funktionieren:

find /tmp/something -type f -mmin +120 -exec cp '{}' /tmp/target \;

verwandte Informationen