J'utilise la commande suivante pour effacer un répertoire, des fichiers et des répertoires de plus de 30 jours, et les déplacer vers un répertoire d'archives que je peux supprimer après quelques semaines si personne ne demande à récupérer leurs fichiers. Le répertoire cible a des sous-répertoires par nom d'utilisateur, tout comme le répertoire d'archivage.
Voici la commande que j'utilise:
find /path/to/directory/username/ -mtime +30 -exec mv "{}" /path/to/archive/username/ \;
J'ai proposé une version modifiée de ce pour répondre à une question demander ubuntu, un autre utilisateur a modifié le code pour changer la fin de la ligne \;
pour +
qu'il est plus rapide (et plus juste?). Vois ici
Cependant, l'utilisation +
de cette manière fonctionne si la -exec
commande est ls -lh
mais pas dans la commande réelle que j'utilise. Si je l'essaye avec, +
j'obtiens un message d'erreur:
find: missing argument to '-exec'
Je ne comprends pas pourquoi il se comporte de cette façon, ni quelle serait la commande correcte. S'il vous plaît ne postez pas seulement une correction de commande, j'aimerais comprendre plutôt que de simplement suivre une suggestion aveuglément.
+
fournit plusieurs arguments à la même commande, mais je mv
ne peux pas y faire face!