Mit dem folgenden Befehl lösche ich ein Verzeichnis von Dateien und Verzeichnissen, die älter als 30 Tage sind, und verschiebe sie in ein Archivverzeichnis, das ich nach einigen Wochen löschen kann, wenn niemand nach ihren Dateien fragt. Das Zielverzeichnis hat Unterverzeichnisse nach Benutzernamen, ebenso das Archivverzeichnis.
Dies ist der Befehl, den ich benutze:
find /path/to/directory/username/ -mtime +30 -exec mv "{}" /path/to/archive/username/ \;
Ich schlug vor , eine leicht modifizierte Version dieses eine Frage zu beantworten auf fragen ubuntu, bearbeiten ein anderer Benutzer den Code , um das Ende der Zeile zu ändern , \;
für +
wie es ist schneller (und richtig?). Siehe hier
Die Verwendung +
auf diese Weise funktioniert jedoch, wenn der -exec
Befehl ls -lh
nicht in dem tatsächlichen Befehl enthalten ist, den ich verwende. Wenn ich es mit probiere +
bekomme ich eine Fehlermeldung:
find: missing argument to '-exec'
Ich verstehe nicht, warum es sich so verhält oder was der richtige Befehl wäre. Bitte posten Sie nicht nur eine Befehlskorrektur, ich würde gerne verstehen, anstatt nur blind einem Vorschlag zu folgen.
+
mehrere Argumente für den gleichen Befehl liefert, aber ich komme damit nicht klar mv
!